Você está na página 1de 42

Curso de Especializao: Engenharia e Administrao de Sistemas de Banco de Dados

Gerenciador de Bancos de Dados SQL Server


1 Conceitos Fundamentais
Profa. Dra. Gisele Busichia Baioco gisele@ft.unicamp.br

Contedo
Banco de Dados BD Sistema de Gerenciamento de Bancos de Dados SGBD Sistema de Bancos de Dados SBD Arquitetura de um SBD Projeto de Bancos de Dados A Linguagem SQL Structured Query Language

Banco de Dados BD
Definio
Um Banco de Dados ou Base de Dados uma coleo de dados (fatos conhecidos) logicamente relacionados, com algum significado.

Propriedades
Associaes aleatrias de dados no podem ser chamadas de BD; Um BD projetado, construdo e preenchido com dados para um propsito especfico.
tem um grupo de usurios e algumas aplicaes para atender esses usurios;

Um BD representa algum aspecto do mundo real, conhecido como Mini-Mundo ou Universo de Discurso.
mudanas no Mini-Mundo provocam mudanas no BD.

Sistema de Gerenciamento de cdigo executvel e Bancos de Dados SGBD


Como armazenar dados em disco?
2. Sistema de Arquivos
Aplicativo1

dados compem um nico objeto.

1. Programa aplicativo com os dados armazenados


programas aplicativos ficam isolados dos dados; procedimentos relacionados a gerncia de dados (armazenamento e recuperao) ficam embutidos no cdigo-fonte dos programas.

...
Aplicativon

Arquivo

3. Sistema de Gerenciamento de Bancos de Dados


Aplicativo1 S G B D

...
Aplicativon

Arquivo

promove a independncia dos programas aplicativos em relao aos dados armazenados.

Sistema de Gerenciamento de Bancos de Dados SGBD


Definio
Um Sistema de Gerenciamento de Bancos de Dados um sistema de software de propsito geral que facilita o processo de definir, construir e manipular BDs de diversas aplicaes.

Capacidades bsicas
Compartilhamento de Dados controle de concorrncia; Restries de Acesso Multiusurio; Reforo de Restries de Integridade tipos de dados, relacionamentos; Fornecimento de Backup e Recovery no caso de falhas de hardware e software.

Sistema de Bancos de Dados SBD


Sistema de Bancos de Dados: composto pelos BDs e o SGBD.
Usurios/Programadores

SBD
Programas de Aplicao/Consultas

SGBD
Software para processo (Programas/Consultas)

Software para acesso a dados armazenados

Definio do Banco de Dados (Meta-Dados)

Banco de Dados

Sistema de Bancos de Dados SBD


Profissionais envolvidos
Administrador do BD (DBA - Database Administrator):
autoriza o acesso ao BD, coordena e monitora seu uso; soluciona problemas, tais como, quebra de segurana e baixo desempenho.

Projetistas do BD:
identifica os dados a serem armazenados no BD; escolhe estruturas apropriadas para representar e armazenar os dados.

Usurios Finais:
acessam o BD para consultar, modificar dados e gerar relatrios.

Analistas de Sistemas e Programadores de Aplicao:


os analistas especificam as transaes para atender aos requisitos dos usurios finais; os programadores implementam essas especificaes produzindo os programas aplicativos.

Arquitetura de um SBD
Um SBD composto por trs partes:
Interface com o usurio:
valida as solicitaes dos usurios; inicia operaes em uma BD de acordo com as solicitaes.

Mecanismo de acesso:
manuteno das estruturas de dados das BDs; acesso aos dados; manuteno da integridade dos dados.

Armazenamento de dados:
arquivos que contm os dados em si (BDs).

De acordo com essas trs partes, duas arquiteturas so possveis para um SBD:
Desktop Cliente-Servidor

Arquitetura de um SBD
Arquitetura Desktop
Considerando um ambiente de rede (dados armazenados em um servidor na rede e podem ser compartilhados):

Aplicativo1

BD1

...
Aplicativon

...
BDm

Todos os dados sero trazidos pela rede, inclusive os que no sero utilizados

Interface com o Usurio + Mecanismo de Acesso

Armazenamento de Dados

Aumento do trfego na rede


Usurio Servidor

Arquitetura de um SBD
Arquitetura Cliente-Servidor
Considerando um ambiente de rede (dados armazenados em um servidor na rede e podem ser compartilhados):
C++ Builder JAVA Delphi Visual Basic, etc Aplicativo1 SQL Server Sybase Oracle, etc

BD1

...
Aplicativon Interface com o Usurio

S G B D

...
BDm

Retorna apenas os dados resultantes de uma solicitao

Mecanismo de Acesso + Armazenamento de Dados

Usurio

Servidor

Reduo do trfego na rede

Cliente (front-end)

Servidor (back-end)

Projeto de Bancos de Dados


Mini-Mundo

Fases de Projeto de Bancos de Dados:

Coleta e Anlise de Requisitos

Requisitos de Dados

Requisitos Funcionais

Modelagem ME-R/ME-R Estendido

Projeto Conceitual

Esquema Conceitual de Dados

Especificao das Transaes Independente do SGBD

Projeto Lgico

Especfico do SGBD

Esquema Lgico de Dados

Projeto Fsico Esquema Fsico de Dados

Mapeamento ME-R/ME-R Estendido para o Modelo Relacional

Projeto de Bancos de Dados


Fase de Projeto Conceitual Abstrai a realidade independente do SGBD utilizado na implementao; Gera o esquema conceitual de dados; Modelos Conceituais:
Modelo Entidade-Relacionamento ME-R; ME-R Estendido; Modelo de Classes da UML.

Projeto de Bancos de Dados


Projeto Conceitual ME-R O ME-R possui 4 construtores semnticos:
Conjunto de Entidades; Conjunto de Relacionamentos; Atributos de Conjunto de Entidades; Atributos de Conjunto de Relacionamentos.

Projeto de Bancos de Dados


Projeto Conceitual ME-R
Conjunto de Entidades (CE):
Entidade representa um objeto sobre o qual deseja-se manter informaes. Pode ser:
fsica: pessoa, carro, casa, funcionrio, etc. conceitual: departamento de uma empresa, curso de uma universidade, etc

Conjunto de Entidades agrupa entidades que possuem propriedades semelhantes. Representao:

CE

Projeto de Bancos de Dados


Projeto Conceitual ME-R
Conjunto de Relacionamentos (CR):
Relacionamento associao entre entidades. Exemplos:
Funcionrio.................Trabalhar..................Departamento Aluno.................Matricular .................Disciplina

Conjunto de Relacionamentos coleo de relacionamentos que possuem propriedades semelhantes. Representao:

CR

Projeto de Bancos de Dados


Projeto Conceitual ME-R
Grau de relacionamentos: binrios, ternrios, etc
Exemplos de relacionamento binrios:

Funcionrio

trabalha

Trabalhar

Departamento
tem

pr-requisito de

Disciplina
pr-requisita

Prrequisitar

Projeto de Bancos de Dados


Projeto Conceitual ME-R
Grau de relacionamentos: binrios, ternrios, etc
Exemplos de relacionamento ternrios:
Aluno
monitora

Monitorar

monitorada por

Disciplina

supervisiona

compra

Professor

Empresa

assessora vendida

Promover venda

compra

Empresa
vende

Negociar

negociado

Produto

Projeto de Bancos de Dados


Projeto Conceitual ME-R
Cardinalidade de relacionamentos binrios:
A a1 B b1 b2 b3 b4

1:1 (um para um)

a2 a3 a4

Exemplo: Funcionrio 1
gerencia

Gerenciar

1
gerenciado por

Departamento

Projeto de Bancos de Dados


Projeto Conceitual ME-R
Cardinalidade de relacionamentos binrios:
A B b1 b2 b3 b4 a1 a2 a3 a4

1:N (um para muitos) N:1 (muitos para um)

b5 b6

Exemplo: Funcionrio 1
possui

Possuir

N
depende de

Dependente

Projeto de Bancos de Dados


Projeto Conceitual ME-R
Cardinalidade de relacionamentos binrios:
A a1 B b1 b2 b3 b4

N:M (muitos para muitos)

a5 a6

a2 a3 a4

b5 b6

Exemplo: Funcionrio N Desenvolver


desenvolve desenvolvido por

Projeto

Projeto de Bancos de Dados


Projeto Conceitual ME-R
Cardinalidade de relacionamentos ternrios:
Possibilidades: Exemplo: 1:1:1 1:1:N Aluno 1:N:M N:M:P

Monitorar

Disciplina

Professor

Projeto de Bancos de Dados


Projeto Conceitual ME-R
Atributos de CEs e de CRs:
Descrevem os CEs e os CRs; Cada entidade do CE e cada relacionamento do CR tero um valor para cada um de seus atributos; Esses valores so os dados armazenados no BD; Os atributos dos CEs so obrigatrios, os dos CRs so opcionais.
atributo1 ... atributon

CE

CR

atributo1 ... atributon

Projeto de Bancos de Dados


Projeto Conceitual ME-R
Atributos de CEs e de CRs:
Chave de um CE: conjunto de atributos cujos valores identifiquem univocamente cada entidade no CE; Outras possveis chaves no so indicadas no esquema de dados, pois no so contempladas pelo ME-R; No existe a representao de chave em um CR.
atributo_chave atributo1 ... atributon

CE

Projeto de Bancos de Dados


Projeto Conceitual ME-R
Atributos de CEs e de CRs:
Exemplos:
Aluno
ra nome

Matricular
nota

Disciplina
sigla nome num_creditos

Chave composta:

Turma
sigla periodo sala

Projeto de Bancos de Dados


Projeto Conceitual ME-R Estendido Abstraes em modelos de dados:
objeto abstrato

detalhar

abstrair

objeto detalhe

Abstraes no ME-R Estendido:


Generalizao; Agregao.

Projeto de Bancos de Dados


Projeto Conceitual ME-R Estendido
Abstrao de Generalizao:
consiste em abstrair as caractersticas comuns contidas em vrios CEs e generaliz-las em um nico CE genrico (CEg).
Genrico

CEg

especializar

generalizar (-um)

Especfico

Propriedade: Herana

CEe1

...

CEen

Projeto de Bancos de Dados


Projeto Conceitual ME-R Estendido
Abstrao de Generalizao:
Exemplo:
Departamento
cdigo nome 1 data

Possuir

Pessoa

RG nome idade

Aluno

Professor
1

Funcionrio
nfuncional

Quando usar? 1o. Caso: quando certos atributos podem ser aplicados somente a algumas entidades da superclasse. 2o. Caso: quando algum CR pode estar relacionando apenas algumas entidades da superclasse.
ra N

Orientar
M

referncia rea_pesquisa

Ministrar
N

Disciplina

cdigo nome nhoras

Projeto de Bancos de Dados


Projeto Conceitual ME-R Estendido
Abstrao de Generalizao:
Representaes:
Participao Total e Excluso Mtua Participao Parcial e Excluso Mtua

CEg

CEg

CEe1

...

CEen

CEe1

...

CEen

Participao Total e Sobreposio

Participao Parcial e Sobreposio

CEg

CEg

CEe1

...

CEen

CEe1

...

CEen

Projeto de Bancos de Dados


Projeto Conceitual ME-R Estendido
Abstrao de Agregao:
consiste em associar CEs cujas entidades estejam relacionadas atravs de um CR, gerando um objeto agregado AG, que pode ter atributos prprios.
Agregao

separar

associar (faz parte de)

CR AG

Parte

Propriedade: Identificao

Projeto de Bancos de Dados


Projeto Conceitual ME-R Estendido
Abstrao de Agregao:
Exemplos:
Empregado Trabalhar Trabalho Projeto

Quando usar? 1o. Caso: quando necessita-se representar relacionamentos entre relacionamentos.

Usar

Mquina

Projeto de Bancos de Dados


Projeto Conceitual ME-R Estendido
Abstrao de Agregao:
Exemplos:
Quando usar? 2o. Caso: quando necessrio identificar cada relacionamento de um CR por meio de uma chave.
Vendedor Produto

Vendedor

Produto

Vender Venda

cdigo data valor

Chave Prpria
Cliente
Produto

Vendedor

Vender Venda

data+ valor

Vender Venda

cdigo data+ valor

Chave Adicional
Cliente

Cliente

Chave Prpria e Chave adicional

Projeto de Bancos de Dados


Projeto Lgico Considera o tipo do SGBD a ser utilizado na implementao, mas no o fabricante; Mapeamento do esquema conceitual de dados gerando o esquema lgico de dados; Modelo Lgico:
Modelo Relacional.

Projeto de Bancos de Dados


Projeto Lgico Modelo Relacional
O Modelo Relacional possui 2 construtores semnticos:
Relaes; Atributos.

Exemplo:
Empregado = {NomeEmp, NumEmp, Salario, Depto}
Informalmente: Relao -> Tabela; Atributos -> Colunas; Tuplas -> Linhas ou Registros.
Empregado
NomeEmp NumEmp Salario R$ 750.00 R$ 480.00 R$ 680.00 Josu Silva Reis 123.456.789 375.758.395 475.858.595 21 25 23

atributos
Depto

Nome da relao

tuplas

Projeto de Bancos de Dados


Projeto Lgico Modelo Relacional
Chaves de Relaes:
Chave: subconjunto dos atributos de uma relao cujos valores so unvocos para cada tupla da relao e do qual no se pode retirar nenhum atributo e ainda preservar-se a propriedade de identificao unvoca; Chave primria: a chave de uma relao que tem a maior freqncia de acesso. As outras chaves so chamadas de chaves candidatas (ou secundrias). chave primria Exemplo:
Pessoa = {Nome, CPF, RG, Idade, Telefone}
chave secundria

Projeto de Bancos de Dados


Projeto Lgico Modelo Relacional
Chaves de Relaes:
Chave estrangeira: faz o vnculo (relacionamento) entre duas relaes por meio de valores de atributos dessas relaes. Exemplo: chave estrangeira Esquema Lgico de Dados:
Departamento = {NumDepto, NomeDepto, Ramal} Empregado = {NumEmp, NomeEmp, Salrio, Depto} Depto chave estrangeira referenciando Departamento

Instncias das relaes:


r(Departamento) = {<21, Pessoal, 142>, <23, Financeiro, 144>, <25, Compras, 156>} r(Empregado) = {<1234, Josu, 750.00, 23>, <4567, Silva, 480.00, 25>, <8910, Reis, 680.00, 21>, <1112, Santos, 250.00, 25>}

Projeto de Bancos de Dados


Projeto Lgico Modelo Relacional
Restries de Integridade: regras a respeito dos valores que podem ser armazenados nas relaes. So trs:
Restries de Integridade de Chave: os valores das chaves de uma relao devem ser nicos para todas as tuplas da relao; Restries de Integridade de Entidade: a chave primria de uma relao no pode ser nula em nenhuma tupla dessa relao; Restries de Integridade Referencial: garantia do conceito de chave estrangeira.

Projeto de Bancos de Dados


Projeto Lgico Modelo Relacional
Exemplos de violaes de Restries de Integridade:
Esquema Lgico de Dados:
Departamento = {NumDepto, NomeDepto, Ramal} Empregado = {NumEmp, NomeEmp, Salrio, Depto} Depto chave estrangeira referenciando Departamento

Instncias das relaes:


Violao de Integridade de Entidade Violao de Integridade de Chave

r(Departamento) = {<null, Pessoal, 142>, <23, Financeiro, 144>, <25, Compras, 156>}

r(Empregado) = {<1234, Josu, 750.00, 23>, <4567, Silva, 480.00, null>, <1234, Reis, 680.00, 21>, <1112, Santos, 250.00, 23>}

Violao de Integridade Referencial

Projeto de Bancos de Dados


Projeto Lgico Modelo Relacional
Exemplo:
Cliente
login senha nome rg endereo

Mapeamento: ME-R/ME-R Estendido -> Modelo Relacional


codobra nome editora preo

cliente = {login, senha, nome, rg, endereo} obras_literrias = {codobra, nome, editora, preo, tipo, login_vendedor, data} login_vendedor chave estrangeira referenciando cliente livro = {codobra, ISBN, autor} codobra chave estrangeira referenciando obras_literrias peridico = {codobra, nmero, volume} codobra chave estrangeira referenciando obras_literrias compra = {codcompra, data, comisso, login_comprador, codobra} login_comprador chave estrangeira referenciando cliente codobra chave estrangeira referenciando obras_literrias

Vender
data

Obras Literrias

1 Comprar Compra
codcompra data comisso

Livro
ISBN autor

Peridico
nmero volume

Projeto de Bancos de Dados


Projeto Fsico Implementa as definies do esquema lgico de dados, escolhendo estruturas de armazenamento e acesso especficas do SGBD a ser utilizado na implementao; Gera o esquema fsico de dados; Usa a DDL (Data Definition Language) do SGBD especfico da implementao.

A Linguagem SQL Structured

Query Language
Linguagem padro dos SGBDs Relacionais; Padronizada inicialmente pela ANSI (American National Standards Institute) e posteriormente tambm pela ISO (International Standards Organization):
Em 1986 primeiro padro ANSI SQL-86 (posteriormente adotado tambm pela ISO em 1987); SQL-89 e SQL-92 atualizaes da SQL-86; Em 1999 SQL:1999 ou SQL3 padro para os BDs Objeto-Relacionais; Em 2003 SQL:2003 introduz caractersticas relacionadas a linguagem XML (eXtensible Markup Language); Em 2006 SQL:2006 define meios de utilizao de SQL em conjunto com XML; mais recente verso SQL:2008.

A Linguagem SQL Structured

Query Language
Divide-se em trs componentes principais:
Linguagem de Definio de Dados (Data Definition Language DDL): permite a definio da estrutura do BD e a criao, alterao e eliminao dos objetos do BD (tabelas, ndices, vises, regras, stored procedures, triggers); Linguagem de Manipulao de Dados (Data Manipulation Language DML): suporta a manipulao dos dados armazenados nas tabelas do BD insero, consulta, eliminao e alterao; Linguagem de Controle de Dados (Data Control Language DCL): envolve comandos para o controle de privilgios de acesso aos dados, segurana e administrao do BD (cadastramento de usurios/grupos, atribuio de permisses, backup e recovery, configuraes, etc).

Bibliografia
ELMASRI, R.; NAVATHE, S. B., Sistemas de banco de dados. 4 ed., Prentice-Hall, 2005. SILBERSCHATZ, A. KORTH, H. F. e SUDARSHAN, S.; Sistema de banco de dados. 5 ed., Campus Elsevier, 2006. DATE, C. J., Introduo a sistemas de bancos de dados. 8 ed., Campus - Elsevier, 2005.

Você também pode gostar