Professional Documents
Culture Documents
2007-2
Introduo
Definies Preliminares
[Chu, 1985]
Um banco de dados um conjunto de arquivos relacionados entre si Um banco de dados uma coleo de dados operacionais armazenados usados pelas aplicaes de uma determinada organizao
[Date, 2000]
Representando algum aspecto do mundo real (mini-mundo ou universo de discurso) Logicamente coerente, com algum significado Projetado, construdo e gerado (povoado) para uma aplicao especfica
Um sistema de gerncia de banco de dados (SGBD) um conjunto de programas que permite a criar e manter um banco de dados Um banco de dados juntamente com o SGBD que o gerncia constitui um sistema de banco de dados
Usurios/Programadores
Consultas/Programas
SGBD
Catlogo
(Meta-Dados)
Banco de Dados
Alunos Disciplinas Departamentos Disciplinas so oferecidas por Departamentos Alunos esto matriculados em Disciplinas
Alguns relacionamentos:
Caractersticas da Abordagem de BD
Usurios em um Ambiente de BD
Administradores de banco de dados Projetistas de banco de dados Analistas de sistema e programadores Usurios finais:
Controle de redundncia dos dados Controle de acesso (segurana) Armazenamento persistente dos dados
Implicaes da Abordagem de BD
Adoo/imposio de padres
Reduo do tempo de desenvolvimento das aplicaes
Flexibilidade
Atualidade da informao disponvel
Economia de escala
Aplicaes simples e bem definidas onde no se espera mudanas Aplicaes de tempo-real Aplicaes onde no necessrio acesso multiusurio Motivos:
Investimento inicial alto Generalidade na definio e manipulao dos dados Custo adicional para prover outras facilidades funcionais (manuteno de segurana, controle de concorrncia, recuperao de falhas, etc.)
estrutura de um banco de dados de acordo com um determinado modelo de dados Instncia: Conjunto de dados armazenados em um banco de dados em um determinado instante de tempo
Modelo de Dados
Esquema
Instncia
Estado do Banco
Dados do banco em qualquer ponto do tempo Inicialmente vazio Muda freqentemente Validade parcialmente guarantida pelo SGBD
Esquema do Banco
Modelos conceituais
Utilizados para se descrever a estrutura de um banco de dados de uma forma mais prxima da percepo dos usurios (independente de aspectos de implementao) Ex. Conceitos: entidades, atributos, relacionamentos Exemplos:
Utilizados para se descrever a estrutura de um banco de dados da forma como ser manipulado atravs de SGBD (mais dependente das estruturas fsicas de armazenamento de dados)
Exemplos:
Modelos fsicos
Linguagens
Linguagem de consulta
Exemplo: SQL
Utilitrios
Carregamento Backup
Exemplo de um BD Relacional
Empregado
NumEmp 032 074 089 092 112 121 130 NomeEmp J Silva M Reis C Melo R Silva R Pinto V Simo J Neves Salrio 380 400 520 480 390 905 640 Dept 21 25 28 25 21 28 28
Departamento
NumDept 21 25 28
Exemplo de um BD de Rede
Empregado Departamento
21 Pessoal 142 032 074 089 25 Financeiro 143 092 112 28 Tcnico 144 121 130 J Silva M Reis C Melo R Silva R Pinto V Simo J Neves 380 400 520 480 390 905 640
Exemplo de um BD Hierrquico
Departamento
21 Pessoal 142 25 Financeiro 143 28 Tcnico 144
Empregado
032 112 J Silva R Pinto 380 390 074 092 M Reis R Silva 400 480 089 121 130 C Melo V Simo J Neves 520 905 640
Modelo Entidade-Relacionamento
Anlise de Requisitos
Especificao das Transaes Esquema Conceitual (em alto nvel) (em um modelo de dados de alto nvel) Independente de SGBD Projeto Lgico
Projeto Fsico
Implementao
Programas
Aplicao exemplo
Organizada em departamentos que tm um nome e um nmero nicos e um empregado que gerencia o departamento. A data de quando o empregado comeou a gerenciar o departamento deve ser registrada. Um departamento pode ter varias localizaes Um departamento controla um nmero de projetos, cada qual com um nome e nmero nicos e uma nica localizao
Aplicao exemplo
Ns armazenamos para cada empregado seu nome, identidade, endereo, salrio, sexo, e data de nascimento. Um empregado assinalado a um departamento mas pode trabalhar em diversos projetos, os quais no so necessariamente controlados pelo mesmo departamento. Nos registramos o nmero de horas por semana que o empregado trabalha em cada projeto e o supervisor direto de cada empregado Ns mantemos registro para cada empregado, do numero de dependentes (para seguro) e para cada dependente o primeiro nome, sexo, data de nascimento e relacionamento com o empregado.
Esquema conceitual
Modelo ER - Conceitos
Entidades:
Objetos do mundo real que so de interesse para alguma aplicao Propriedades utilizadas para descrever uma entidade
Name = John Address = 2311 Kirby, Houston, TX Age = 55 Home Phone = 713-749-2630
Atributos:
e1 (Employee)
Modelo ER - Conceitos
Simples ou compostos
Ex. Endereo (Endereo da Rua (nmero, nome da rua, nmero do apto), Cidade, Estado, CEP) Ex. Profisso Data de Nascimento Idade, Empregados trabalhando no departamento NumeroDeEmpregados No aplicvel
Monovalorados ou multivalorados
Armazenados ou derivados
Valores Null
Desconhecido
Modelo ER - Conceitos
Tipo de entidade:
Define um conjunto de entidades que tm os mesmos atributos (propriedades) Descreve o esquema para um conjunto de entidades que compartilham a mesma estrutura Exemplos:
Employee, Company
Modelo ER - Conceitos
Domnio de um atributo:
Conjunto de valores que podem ser atribudos a um atributo para cada entidade individualmente Ex. Idade do Empregado: (16,70); Nome do Empregado:String
Figura 3.5
Esquema conceitual
Modelo ER - Conceitos
Relacionamentos:
Associaes entre duas ou mais entidades distintas (instncias) com um significado Exemplo:
Employee John Smith Works-for Department Research Employee Fred Brown Manages Department Research Departament Research Controls Project X
Modelo ER - Conceitos
Tipo de Relacionamento:
Employee
Works-for
Department
Modelo ER - Conceitos
Tipo de Relacionamento:
Matematicamente, um tipo de relacionamento R um conjunto de (instncias de) relacionamentos ri, onde cada ri associa n (instncias de) entidades (e1,...,en) e cada ej pertence a um tipo de entidade Ej R E1 x E2 x ... x En ri = (e1,...,en)
Nmero de tipos de entidade participantes de um tipo de relacionamento
Esquema conceitual
Modelo ER - Conceitos
Limitam as possiveis combinaes de entidades que podem participar no conjunto de relacionamentos Cardinalidade: Especifica o nmero de instncias de um tipo de relacionamento do qual uma entidade pode participar Participao: Especifica se a existncia de uma entidade depende de seu relacionamento com outra entidade atravs de um tipo de relacionamento parcial ou total
Cardinalidade Estruturais
Ex. Todo empregado deve trabalhar para um departamento (total) Ex. Nem todo empregado gerencia um departamento (parcial)
Participao
Restries
Cardinalidade 1:1
Cardinalidade M:N
Esquema conceitual
Modelo ER - Conceitos
Entidades atuam com um determinado papel Significado do papel dado por um nome, atribudo a cada tipo de entidade Nomes s so necessrios em tipos de relacionamento que envolvam mais de uma vez o mesmo tipo de entidade relacionamentos recursivos Exemplo: Supervision, onde Employee tem os papis de Supervisor e Supervisee
Figure 3.11
1 Supervisor 2 - Supervisee
Esquema conceitual
Modelo ER - Conceitos
Tipos de entidade que no tm chave prpria As instncias so identificadas atravs do relacionamento com entidades de outro tipo, chamado de dono ou identificador, juntamente com os valores de alguns atributos (chave parcial) Exemplo: Dependent
Esquema conceitual
Notao ER
(Resumo)
Introduo
Conceitos Bsicos
As linhas de uma relao (tabela) so chamadas de tuplas Ao cabealho de cada coluna d-se o nome de atributo O conjunto de valores que pode aparecer em cada coluna chamado de domnio
Conceitos Bsicos
Esquema de relao
Descreve a relao
R Nome da relao Ai Nome de um atributo n Grau da relao Cada Atributo Ai e o nome de um papel desempenhado por algum dominio D no Esquema da relao R Student(Name, SSN, OfficePhine, Age,GPA) HomePhone, Address,
Exemplo:
Conceitos Bsicos
Relao r(R)
Conjunto de tuplas: r = {t1,t2, ..., tm} Cada tupla uma lista ordenada de valores: t = <v1,v2, ..., vn>
As tuplas ordenadas
de
uma
relao
no
so
Benjamin Bayer
305-61-2425
373-1616
null
19
3.21
Uma tupla uma lista ordenada de valores O valor de cada atributo em uma tupla atmico
Atributos compostos e multivalorados no so permitidos O valor especial null utilizado para representar valores no conhecidos ou no aplicveis a uma determinada tupla
Restries de Integridade
Restries de domnio
Especificam que o valor de cada atributo A de uma relao deve ser um valor atmico do domnio dom(A)
Restries de chave
Uma chave de R uma super-chave com a propriedade adicional de que nenhum de seus subconjuntos tambm seja uma super-chave de R
Restries de Integridade
Restries de chave
Um esquema de relao pode ter mais de uma chave chaves candidatas Dentre as chaves candidatas de um esquema de relao, uma delas indicada como chave primria e as demais constituem as chaves alternativas
Restries de Integridade
Especifica se a um atributo permitido ter valores null Exemplo. Todo Estudante deve ter um nome vlido, no-null
Esquema de um BD Relacional
Restries de Integridade
Alm das restries de domnio e de chave as seguintes restries de integridade so parte do modelo relacional:
Restries de Integridade
Usada para manter a consistencia entre tuplas de duas relacoes Uma tupla em uma relao que se refere a outra relao deve referenciar uma tupla existente nesta outra relao Aparecem devido aos relacionamentos entre entidades Seja FK um conjunto de atributos de um esquema de relao R1 definido sobre o mesmo domnio dos atributos da chave primria PK de outro esquema R2. Ento, para qualquer tupla t1 de R1:
Restries de Integridade
Instncia de um BD Relacional
1 4
5
5 5 Houston
Instncia de um BD Relacional
A cada RIR R1[FK] R2[PK] possvel associar uma opo de remoo que especifica como a remoo de uma tupla de R2 executada em relao a R1 As opes de remoo possveis so:
R1[FK] R2[PK],
Exemplos de RIR
EMPLOYEE(FNAME,MINT,LNAME,SSN,BDATE,ADDRESS,SEX, SALARY,SUPERSSN,DNO)
n
EMPLOYEE[SUPERSSN] EMPLOYEE[SSN]
b
EMPLOYEE[DNO] DEPARTMENT[DNUMBER]
DEPARTMENT[DNAME,DNUMBER,MGRSSN,MGRDATE]
b
p b b p
Operaes de recuperao (consulta) Operaes de atualizao Insero (insert) Remoo (delete) Modificao (modify)
Operaes de atualizao
Insero
Restrio de Dominio: valor fora do dominio Restrio de Chave: valor ja existe Restrio de integridade de entidade: se chave for null Restrio de integridade referencial: se chave estrangeira referencia tupla inexistente Ao default: rejeitar insero (com explicao)
Operaes de atualizao
Remoo
Restrio de integridade referencial: tupla deletada e referenciada por chaves estrangeiras Ao default: rejeitar insero (com explicao) Segunda opo: propagar remoo de tuplas que violem uma restrio de integridade referencial Terceira Opcao: Modificar o valor da chave estrangeira para nulo
Operaes de atualizao
Modificao
Modificar o valor de um atributo que nao e chave primaria ou estrangeira no causa problemas (se o valor for do dominio, e, se for null, que este valor seja permitido) Modificar a chave primaria e igual a remover uma tupla e inserir outra Modificar chave estrangeira: SGBD deve verificar se novo valor do atributo referencia tupla existente
A Linguagem SQL
Introduo
Originalmente proposta para o System R desenvolvido nos laboratrios da IBM na dcada de 70 SEQUEL (Structured English QUEry Language) Objeto de um esforo de padronizao coordenado pelo ANSI/ISO:
Introduo
LDD:
LMD:
CREATE SCHEMA / TABLE / VIEW DROP SCHEMA / TABLE / VIEW ALTER TABLE SELECT, INSERT, UPDATE, DELETE GRANT, REVOKE Table = Relao Row = tupla Column = atributo
LCD:
Conceitos:
CASCADE (propagao) SET NULL (substituio por nulos) SET DEFAULT (substituio por um valor default)
Opo default: bloqueio (RESTRICT)
FOREIGN KEY (DNO) REFERENCES DEPARTMENT(DNUMBER) FOREIGN KEY (MGRSSN) REFERENCES EMPLOYEE(SSN) FOREIGN KEY (DNUMBER) REFERENCES DEPARTMENT(DNUMBER) ON DELETE CASCADE
VISAO
OU
RESTRICAO
Exemplo:
SELECT BDATE, ADDRESS FROM EMPLOYEE WHERE FNAME=John AND MINIT=B AND LNAME=Smith;
SELECT FNAME, LNAME, ADDRESS FROM EMPLOYEE, DEPARTMENT WHERE DNAME=Research AND DNO=DNUMBER;
condio de seleo condio de juno
SELECT PNUMBER, DNUM, LNAME, ADDRESS, BDATE FROM PROJECT, DEPARTMENT, EMPLOYEE WHERE PLOCATION=Stafford AND DNUM=DNUMBER AND MGRSSN=SSN;
Consultas aninhadas
SELECT FNAME, LNAME, ADDRESS FROM EMPLOYEE WHERE DNO IN (SELECT DNUMBER FROM DEPARTMENT WHERE DNAME=Research);
equivalente consulta
SELECT FNAME, LNAME, ADDRESS FROM EMPLOYEE, DEPARTMENT WHERE DNO=DNUMBER AND DNAME=Research;
Comparao de conjuntos
SELECT DISTINCT PNUMBER FROM PROJECT WHERE PNUMBER IN (SELECT PNUMBER FROM PROJECT, DEPARTMENT, EMPLOYEE WHERE DNUM =DNUMEBR AND MGRSSN=SSN AND LNAME=Smith) OR PNUMBER IN (SELECT PNO FROM WORKS_ON, EMPLOYEE WHERE ESSN=SSN AND LNAME=Smith);
Comparao de conjuntos
SELECT DISTINCT ESSN FROM WORKS_ON WHERE (PNO, HOURS) IN (SELECT PNO, HOURS FROM WORKS_ON WHERE ESSN=123456789); SELECT LNAME, FNAME FROM EMPLOYEE WHERE SALARY > ALL (SELECT SALARY
Facilidades Adicionais
Facilidades Adicionais
Agrupamento
SELECT DNO, COUNT(*), AVG(SALARY) FROM EMPLOYEE GROUP BY DNO;
Facilidades Adicionais
3 3 3 3
Atualizaes em SQL
Comando INSERT
INSERT INTO EMPLOYEE VALUES (Richard,K,Marini,653258653,1962-12-30, 98 Oak Forest, Katy, TX,37000,987654321,4);
INSERT INTO EMPLOYEE(FNAME, LNAME, SSN, DNO) VALUES (Richard,Marini,653258653,4);
Atualizaes em SQL
Comando DELETE
DELETE FROM EMPLOYEE WHERE LNAME=Brown;
DELETE FROM EMPLOYEE WHERE DNO IN (SELECT DNUMBER FROM DEPARTMENT WHERE DNAME=Research);
Atualizaes em SQL
Comando UPDATE
UPDATE PROJECT SET PLOCATION=Bellaire, DNUM=5 WHERE PNUMBER=10; UPDATE EMPLOYEE SET SALARY=SALARY*1.1 WHERE DNO IN (SELECT DNUMBER FROM DEPARTMENT WHERE DNAME=Research);
Tpicos
Processo de Projeto de Bancos de Dados Exemplo Preliminar Representao Relacional de Esquemas ER Implementao Usando SQL Referncias Bibliogrficas
Caracterizao
Fases
Complexidade Multiplicidade de tarefas Coleo e anlise de requisitos Projeto conceitual Escolha de um sistema gerenciador de banco de dados Projeto lgico (ou mapeamento para o modelo de dados do SGBD escolhido) Projeto fsico Implementao e tuning
Especificao das Transaes Esquema Conceitual (em alto nvel) (em um modelo de dados de alto nvel) Independente de SGBD
Projeto Lgico
Esquema Lgico (em um modelo de dados lgico) Projeto das Aplicaes Projeto Fsico
Implementao
Programas
Esquema Conceitual Especificao das Transaes (em alto nvel) (em um modelo de dados de alto nvel) Independente de SGBD
Projeto Lgico
Esquema Lgico (em um modelo de dados lgico) Projeto Fsico
Modelo Relacional
SGBD Relacional
Implementao
Programas
Aplicao exemplo
Organizada em departamentos que tm um nome e um nmero nicos e um empregado que gerencia o departamento. A data de quando o empregado comeou a gerenciar o departamento deve ser registrada. Um departamento pode ter varias localizaes Um departamento controla um nmero de projetos, cada qual com um nome e nmero nicos e uma nica localizao
Aplicao exemplo
Ns armazenamos para cada empregado seu nome, identidade, endereo, salrio, sexo, e data de nascimento. Um empregado e assinalado a um departamento mas pode trabalhar em diversos projetos, os quais no so necessariamente controlados pelo mesmo departamento. Nos registramos o nmero de horas por semana que o empregado trabalha em cada projeto e o supervisor direto de cada empregado Ns mantemos registro para cada empregado, do numero de dependentes (para seguro) e para cada dependente o primeiro nome, sexo, data de nascimento e relacionamento com o empregado.
n EMPLOYEE[SUPERSSN] EMPLOYEE[SSN] b EMPLOYEE[DNO] DEPARTMENT[DNUMBER] b DEPARTMENT[MGRSSN] EMPLOYEE[SSN] p DEPT_LOCATIONS[DNUMBER] DEPARTMENT[DNUMBER] b PROJECT[DNUM] DEPARTMENT[DNUMBER] b WORKS_ON[ESSN] EMPLOYEE[SSN] b WORKS_ON[PNO] PROJECT[PNUMBER] p DEPENDENT[ESSN] EMPLOYEE[SSN]
Estratgias de representao
Mapeamento 1-1: cada tipo de entidade ou de relacionamento representado por um esquema de relao separado Mapeamento otimizado: tipos de relacionamento funcionais (1:1 e N:1) e subtipos de entidade so colapsados e representados atravs de atributos em outro esquema de relao
Esquema de relao R (A1,A ,,An), onde A1 a chave primria de R 2 Restrio de integridade referencial
R1 [X] R2 [Y], onde X um conjunto de atributos de R1 que referencia a chave Y de R2 <expr1> op <expr2>, onde <expr1> e <expr2> so expresses da lgebra relacional e op um dos operadores , , ou
Restries estruturais
Exemplo de um Diagrama ER
NEmp NomeEmp Salrio NDept Trabalha-para NomeDept Ramal
N Empregado 1
1 Departamento 1 1
1
Gerencia
Possui
Controla
N Dependente
Participa-de
N Projeto
NomeDep
DataNasc
HsTrab
NProj
NomeProj
Local
NEmp
Empregado
NomeEmp Salrio
Empregado (NEmp(nn),NomeEmp,Salrio)
Departamento
NomeDept
Ramal
Departamento (NDept(nn),NomeDept)
Ramal-Departamento (NDept(nn), Ramal(nn))
p Ramal-Departamento [NDept] Departamento [NDept]
Dependente
NEmp
NomeDep
DataNasc
Departamento
NEmp
NDept
Trabalha-para
NEmp
NDept
Empregado (NEmp(nn),...,NDept(nn))
Departamento (NDept(nn),...)
b Empregado [NDept] Departamento [NDept]
Empregado
Gerencia
Departamento
NEmp
NDept
Participa-de
Projeto
NEmp
HsTrab
NProj
SQL
Composta de trs sublinguagens: LDD, LMD e LCD Objeto de padronizao pelo ANSI/ISO
references
Restries de unicidade (unique constraints) que indicam a chave primria e as chaves alternativas de uma tabela Restries de integridade referencial (referential constraints) que especificam as chaves estrangeiras de uma tabela Restries de verificao (check constraints) que especificam condies que devem ser satisfeitas por coluna/linhas de uma tabela ou entre tabelas
Restries de Unicidade
Chave primria primary key (<attribute list>) Chaves alternativas unique (<attribute list>)
create table Departamento ( ... primary key (NDept), unique (NomeDept), ...)
Referncias
Batini, C.; Ceri, S.; Navathe, S.B. Conceptual Database Design: An EntityRelationship Approach. Benjamin/Cummings, Redwood City, CA, 1992. Elmasri, R.; Navathe, S.B. Fundamentals of Database Systems, 3rd ed., Addison-Wesley, MA, 2000. Laender, A.H.F.; Casanova, M.A.; Carvalho, A.P.; Ridolfi, L.F. An Analysis of SQL Integrity Constraints from an Entity-Relationship Model Perspective. Information Systems 4, 3(1994), 423-464. Silva, A.S.; Laender, A.H.F.; Casanova, M.A. An Approach to Maintaining Optimizing Relational Representations of Entity-Relationship Schemas. In Thalheim, B. (ed.). Conceptual Modeling -ER96. Springer-Verlag, Berlin, 1996, pp. 242-256. Silva, A.S.; Laender, A.H.F.; Casanova, M.A. On the Relational Representation of Specialization Structures. Information Systems 25, 6(2000), 399-415.