Banco Dados Relacional SQL Server Basico_05101718

Embed Size (px)

Citation preview

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    1

    Solues Corporativas em TISistemas Distribudos:

    Banco de Dados Relacional MS SQL SERVER

    O Projeto Oficina do Futuro uma iniciativa conjunta do Instituto Eldorado, IBM e Flextronics (antiga Solectron), desenvolvido em parceria desde 2004.

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    2

    Aviso de Propriedade IntelectualTodo o contedo desta obra intelectual de propriedade intelectual nica e exclusiva do Instituto Eldorado, IBM e Flextronics.Esta obra intelectual destina-se nica e exclusivamente a ser utilizada por instrutores e alunos de projetos cientficos, culturais e educacionais que o Instituto Eldorado, IBM e Flextronics promovam, em conjunto ou separados, e em consonncia com o objetivo desses projetos. Qualquer outra forma de uso estritamente proibida.Dependem de prvia e expressa autorizao dos proprietrios, por escrito, usos que impliquem em:a) Reproduo parcial ou integral desta obra intelectual;b) Edio desta obra intelectual;c) Adaptao e quaisquer outras transformaes desta obra intelectual;d) Traduo desta obra intelectual para qualquer idioma;e) Incluso desta obra intelectual em fonograma ou produo audiovisual;f) Distribuio desta obra intelectual, independentemente do meio utilizado;g) A incluso desta obra em base de dados, sistema de armazenamento em computador, microfilme e demais formas de arquivamento do gnero.Licena de uso especial para instrutores: a fim de disseminar o conhecimento contido nesta obra intelectual a terceiros, os instrutores que fizerem parte dos Projetos realizados pelo Instituto Eldorado, IBM e Flextronics tero direito a uma licena de uso especial, nos seguintes termos:a) A licena concedida por prazo indeterminado e em abrangncia mundial.b) A licena permite aos instrutores utilizar o contedo desta obra intelectual, no todo ou em parte, nas suas apresentaes e aulas expositivas, sncronas ou assncronas, tenham elas ou no finalidade lucrativa.c) A licena no permite a excluso de quaisquer avisos de propriedade intelectual, direitos autorais, copyright e afins.d) A licena no permite aos instrutores modificar o contedo desta obra intelectual, no todo ou em parte, qualquer que seja o motivo.e) A licena no permite:

    i. A edio desta obra intelectual;ii. A adaptao ou transformao desta obra intelectual;iii. A traduo desta obra intelectual para qualquer idioma;iv. A incluso desta obra intelectual em fonograma ou produo audiovisual;v. A distribuio desta obra intelectual, independentemente do meio utilizado;vi. A incluso desta obra em base de dados, sistema de armazenamento em computador, microfilme e demais formas de arquivamento do gnero, para propsitos diversos daqueles autorizados pela licena.

    f) A licena no pode ser transferida a terceiros.g) Sempre que houver o uso desta obra intelectual, dever ser feita uma meno ao Projeto pelo qual o instrutor obteve o seu contedoh) Sempre que houver o uso desta obra intelectual, dever ser feita uma meno aos direitos de propriedade intelectual do Instituto Eldorado, IBM e Flextronics.

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    3

    Reviso Descrio Responsvel Data00.01 Verso Inicial Wallace Antony Feres 19/1/200600.02 Incluso de Aviso, Copyright e Correo. Marcelo dos Santos Draetta 28/5/2010

    Histrico de Reviso

    Banco de Dados Relacional MS SQL SERVER

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    4

    Banco de Dados Relacional MS SQL SERVER

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    5

    Definio : Uma base de dados um local para se armazenar e recuperar dados pertinentes um determinado objetivo. Por ex.: Informaes sobre funcionrios.

    Uma base de dados se compem de objetos, ou seja, tabelas, ndices, constraints, views, stored procedures, etc.

    Para que seja possvel se conectar base de dados necessrio que exista um login. Mesmo que um determinado usurio possua um login, ainda ser necessrio que ele possua permisses sobre os objetos que compem o banco de dados, isso determina a segurana das informaes.

    Viso Geral

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    6

    Descrio : O modelo E-R (Entidade-Relacionamento) tem por objetivo estruturar uma base de dados para que seja possvel a garantia da integridade de dados de forma independente da aplicao. Isto importante, pois, mesmo que sejam realizados acessos por fora da aplicao, os dados no estaro vulnerveis.

    Um bom exemplo de uma estrutura E-R um pedido, ele tercliente, endereo, nmero de pedido e item do pedido, que se relacionaro da seguinte forma: Um endereo no poder existir sem um cliente Um pedido no poder existir sem um cliente Um item de pedido no poder existir sem um pedido

    Modelo E-R

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    7

    Para que tenhamos um bom modelo E-R em bases de dados transacionais, utilizamos os principios de NORMALIZAO

    As formas normais mais popularizadas so as chamadas : Primeira Forma Normal, Segunda Forma Normal e Terceira Forma Normal

    Definio : 1a. FN : Cada campo de uma tabela precisa conter somente um nico

    valor, e cada parcela de dado deve ser armazenado em somente um lugar. Essa exigncia algumas vezes expressa como uma exigncia de dados atmicos, ou seja, cada campo indivisvel.

    2a. FN : Cada registro deve conter dados sobre uma e somente umatupla.

    3a. FN : Todos os campos no-chave, precisam depender diretamente da chave primria.

    Normalizao

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    8

    Existe ainda outras 3 formas normais conhecidas Boyce-Codd: algumas vezes chamada de BCNF que adiciona a

    restrio de que cada coluna que no esteja na chave primria deve depender de toda a chave primria.

    4a. FN : Esta forma trata das questes de dependncias de conjuntos de tuplas. Para obter a 4a. FN, pode-se dividir essa a tabela em duas, uma para cada tipo de relacionamento.

    5a. FN : Esta forma considera um problema que ocorre quando uma tabela no puder ser decomposta em duas sem perder informao, mas pode ser decomposta em mais de duas tabelas. Esta forma mais uma noo acadmica e no um projeto de base de dados prtico, sendo assim no ser tentado demonstrar sua utilizao.

    Normalizao

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    9

    Assim como a normalizao tem por objetivo organizar os dados de uma forma que permita fazer alteraes sem redundncia, a denormalizao visa permitir a existncia de duplicidade de registros. Algumas vezes podemos efetuar uma denormalizao de uma tabela objetivando um melhor desempenho.

    Denormalizao

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    10

    A Primary Key ou chave primria tem por objetivo garantir a unicidade de uma linha. Ela deve ser composta pelo menor nmero de colunas que permitam atingir este objetivo.

    A Foreign Key ou chave estrangeira tem por objetivo garantir a existncia da dependencia entre duas tabelas, desta forma conseguiremos garantir a integridade dos dados armazenados. Uma foreign key deve sempre referenciar uma primary key. Nenhum registro que possua uma foreign key referenciando poder ser

    apagado antes que sua dependncia seja apagada. Uma tabela pode ter uma FK apontando para ela mesma, isso se

    chama auto relacionamento.

    Primary Keys e Foreign Keys

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    11

    Exerccio. Faa o modelo de uma entrada de pedido.

    Modelo E-R

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    12

    Para que uma base de dados possa armazenar dados, ela utiliza a seguinte distribuio: Data File : Arquivo ou arquivos que contm os dados Log File : Arquivo ou arquivos que contm os dados antes que os

    mesmo sejam armazenados no Data File ou descartados. Temporary Area : Objeto que ser utilizado para o armazenamento de

    dados de forma temporria, como uma ordenao de dados ou uma tabela temporria.

    Uma base de dados est dividida em blocos, pginas e extents Os blocos de dados (data blocks) so as menores unidades de

    armazenamento. Alguns RDBMS, como o MS SQL Server, no fazem uso de data

    blocks, portanto sua menor unidade de armazenamento so as pginas

    Armazenamento de dados

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    13

    Uma pgina de dados no MS SQL Server possui um tamanho de 8Kb, ou seja, 8192 bytes, porm o mximo que ela pode armazenar so 8096 bytes, pois 96 bytes so utilizados para fins de cabealho.

    Uma extent um conjunto de 8 pginas contguas de dados, evitando assim que a base de dados fique fragmentada, ou seja, possua pedaos em diferentes setores dos discos. Existem 2 tipos de extents : Uniformes e mistas.

    Extents uniformes so aquelas que pertencem totalmente a um nico objeto.

    Extents mistas so aquelas usadas por objetos pequenos demais para ocupar as 8 pginas sozinho. Assim uma extent mista contm mais de um objeto.

    Armazenamento de dados

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    14

    Uma base de dados pode conter os seguintes objetos. Logins Tabelas ndices Constraints Views Triggers Stored Procedures Funces Tipos de dados

    Objetos de uma base de dados

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    15

    O MS SQL Server possui uma interface bastante amigvel, atravs da qual o usurio pode realizar todas as atividades relativas ao RDBMS. Esta interface chama-se ENTERPRISE MANAGER.

    Atravs dela podemos criar logins, bases de dados, tabelas, etc.

    A Interface do MS SQL Server

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    16

    O login uma parte extremamente importante para que possamos tornar os dados disponveis a um ou mais usurios.

    O login composto de : Nome, que nico. Senha, caso no seja desejado que exista uma relao de confiana

    entre o MS SQL Server e o Windows. Database default : qual a base de dados que o usurio ir se conectar

    ao iniciar uma conexo com o SQL Server, desde que no seja informado nenhum outro no momento da conexo.

    Server roles : so permisses pr-definidas pelos RDBMS. Database access : quais as bases de dados que o usurio poder ter

    acesso e qual ser sua permisso.

    Logins

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    17

    Os ndices tem por objetivo melhorar a performance das consultas que sero realizadas em uma tabela.

    Podem existir dois tipos de ndices no MS SQL Server: Clustered : onde a tabela estar fsicamente ordenada por ele, por este

    motivo cada tabela somente poder possuir 1 nico ndice CLUSTERED.

    NonClustered : sero ndices que auxiliaram na busca durante uma consulta, como este tipo de ndice NO ordenar a tabela fsicamente, podero existir at 255 ndices deste tipo.

    Porm vale lembrar que da mesma forma que um ndice melhora a performance durante uma consulta, ele tambm trar impactos negativos durante as operaes de gravao, pois sero pontos adicionais que necessitaro ser atualizados.

    ndices

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    18

    ndices

    Vdeo: ELD_OFI_DSDBA_VIDEO_MS_SQL_SERVER_BASICO_0510191

    6_PT.AVI

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    19

    Quando criamos um DB devemos levar em considerao suafuno e as funes de negcio que ele exercer.

    O modelo do DB a ser adotado deve ser fortemente analisado antesde sua implementao pois muito dispendioso alter-lo depois.

    Criao de database

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    20

    CREATE DATABASE database_name[ ON

    [ < filespec > [ ,...n ] ] [ , < filegroup > [ ,...n ] ]

    ] [ LOG ON { < filespec > [ ,...n ] } ] [ COLLATE collation_name ][ FOR LOAD | FOR ATTACH ] < filespec > ::= [ PRIMARY ]( [ NAME = logical_file_name , ]

    FILENAME = 'os_file_name' [ , SIZE = size ] [ , MAXSIZE = { max_size | UNLIMITED } ] [ , FILEGROWTH = growth_increment ] ) [ ,...n ]

    < filegroup > ::= FILEGROUP filegroup_name < filespec > [ ,...n ]

    Criao de database

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    21

    So os objetos em uma base de dados que realmente armazenam os dados. Todos os outros objetos da base de dados dependem da sua existncia.

    Os dados em uma tabela so armazenados em linhas e colunas. Cada uma das colunas s pode conter um tipo de dado, tais como

    carateres, nmeros, imagens, etc. Uma vez criada uma tabela na base de dados, voc poder

    comear a criar os outros objetos que dependem dela.

    Tabelas

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    22

    Constraints so regras criadas de forma a manter a integridade lgica dos dados.

    O SQL Server 2000 suporta 5 classes de constraints: NOT NULL CHECK UNIQUE Primary Key Foreign Key

    Constraints de Tabela X constraints de coluna

    Constraints

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    23

    Views so criadas para facilitar a vida do usurio, eliminando a necessidade de queries complexas.

    Views tambm podem ser usadas no controle de segurana.

    CREATE VIEW [< owner > . ] view_name [ ( column [ ,...n ] ) ] [ WITH < view_attribute > [ ,...n ] ] AS select_statement[ WITH CHECK OPTION ]

    < view_attribute > ::= { ENCRYPTION | SCHEMABINDING | VIEW_METADATA }

    Views

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    24

    Uma stored procedure nada mais do que um conjunto de instrues Transact-SQL contidas dentro de um nico bloco.

    O SQL Server 2000 retorna dados em quatro tipos diferentes: Output parameters Return codes Result set Global cursor

    CREATE PROC [ EDURE ] [ owner. ] procedure_name [ ; number ] [ { @parameter data_type }

    [ VARYING ] [ = default ] [ OUTPUT ] ] [ ,...n ]

    [ WITH { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ]

    [ FOR REPLICATION ]

    AS sql_statement [ ...n ]

    Stored Procedures

  • 2010 Copyright OFICINA DO FUTURO Todos os direitos reservados

    25

    Transaes

    Vdeo: ELD_OFI_DSDBA_VIDEO_MS_SQL_SERVER_BASICO_0510191

    7_PT.AVI