• Nenhum resultado encontrado

BANCO DE DADOS II Conceitos Básicos. COTEMIG Gerson Borges

N/A
N/A
Protected

Academic year: 2021

Share "BANCO DE DADOS II Conceitos Básicos. COTEMIG Gerson Borges"

Copied!
134
0
0

Texto

(1)

BANCO DE DADOS II

Conceitos Básicos

COTEMIG

Gerson Borges

(2)
(3)
(4)

Definições Preliminares

[Chu, 1985]

Um banco de dados é um conjunto de arquivos

relacionados entre si

[Date, 2000]

Um banco de dados é uma coleção de dados

operacionais armazenados usados pelas

(5)

Outra Definição de Banco de Dados

[Elmasri & Navathe, 2000]

Um banco de dados é uma coleção de dados

relacionados

 Representando algum aspecto do mundo real

(mini-mundo ou universo de discurso)

 Logicamente coerente, com algum significado

 Projetado, construído e gerado (“povoado”) para

(6)

Sistema de Gerência de Banco de Dados

Um sistema de gerência 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 gerência constitui um

sistema

de banco de dados

(7)

Consultas/Programas

SGBD

Banco de Dados Usuários/Programadores Catálogo (Meta-Dados)

(8)

Exemplo de um Banco de Dados

Mini-mundo: parte de uma universidade

Algumas entidades:

Alunos

Disciplinas

Departamentos

Alguns relacionamentos:

Disciplinas

são oferecidas por

Departamentos

(9)
(10)
(11)

Características da Abordagem de BD

Auto-descrição dos dados

Isolamento entre programas e dados:

abstração de dados

Suporte a múltiplas visões dos dados

Compartilhamento de dados e

(12)

Usuários em um Ambiente de BD

Administradores de banco de dados

Projetistas de banco de dados

Analistas de sistema e programadores

Usuários finais:

Usuários casuais

Usuários leigos

(13)

Vantagens da Utilização de um SGBD

 Controle de redundância dos dados  Controle de acesso (segurança)

 Armazenamento persistente dos dados

 Existência de múltiplas interfaces para os usuários

 Representação de relacionamentos complexos entre os

dados

 Manutenção de restrições de integridade  Recuperação de falhas

(14)

Implicações da Abordagem de BD

Adoção/imposição de padrões

Redução do tempo de desenvolvimento das

aplicações

Flexibilidade

Atualidade da informação disponível

Economia de escala

(15)

Quando

não

Utilizar um SGBD

Aplicações simples e bem definidas onde não se

espera mudanças

Aplicações de tempo-real

Aplicações onde não é necessário acesso

multi-usuário

Motivos:

 Investimento inicial alto

 Generalidade na definição e manipulação dos dados  Custo adicional para prover outras facilidades

funcionais (manutenção de segurança, controle de concorrência, recuperação de falhas, etc.)

(16)

Modelo de Dados, Esquema e Instância

Modelo de dados:

Conjunto de conceitos usados

para descrever a estrutura de um banco de

dados

 Abstração de dados

 Estrutura = tipos de dados + relacionamentos +

restrições (+operações )

Esquema:

Descrição (textual ou gráfica) da

estrutura de um banco de dados de acordo com

um determinado modelo de dados

Instância:

Conjunto de dados armazenados em

um banco de dados em um determinado instante

de tempo

(17)

Modelo de Dados, Esquema e Instância

(18)

Modelo de Dados, Esquema e Instância

(19)

Relação entre Modelo de Dados,

Esquema e Instância

Modelo de

Dados Regras para Esquema Instância estruturação dos

dados

Regras para verificação das

(20)

Modelo de Dados, Esquema e Instância

Estado do Banco

Dados do banco em qualquer ponto do tempo

Inicialmente vazio

Muda freqüentemente

Validade parcialmente guarantida pelo SGBD

Esquema do Banco

Armazenado no catálogo

(21)

Tipos de Modelo de Dados

Modelos conceituais

Utilizados para se descrever a estrutura de um

banco de dados de uma forma mais próxima da

percepção dos usuários (independente de

aspectos de implementação)

Ex. Conceitos: entidades, atributos,

relacionamentos

Exemplos:

 Modelo entidade-relacionamento (ER)  Modelo funcional

(22)

Tipos de Modelo de Dados

Modelos representacionais

(lógicos)

 Utilizados para se descrever a estrutura de um banco

de dados da forma como será manipulado através de SGBD (mais dependente das estruturas físicas de

armazenamento de dados)

Exemplos:

 Modelo relacional

 Modelo de rede (CODASYL)  Modelo hierárquico

(23)

Tipos de Modelo de Dados

Modelos físicos

 Utilizados para descrever como os dados são

(24)

Linguagens

Linguagem de definição de dados (LDD)

Usada para definir esquemas

Linguagem de manipulação de dados

(LMD)

Recuperação, inserção, remoção, modificação

do BD

Linguagem de consulta

LMD de alto nivel usada em modo

“stand-alone”

(25)

Utilitários

Carregamento

Backup

E.g. dumps do banco de dados

(Re-)Organização de arquivos

(26)

Classificação dos SGBDs

Quanto ao modelo de dados adotado:

 Relacionais  De rede

 Hierárquicos

 Orientados a objetos  Objeto-relacionais

Quanto ao número de usuários suportados:

 Mono-usuários  Multi-usuários

Quanto à localização dos dados:

 Centralizados  Distribuídos

(27)

Exemplo de um BD Relacional

NumEmp NomeEmp Salário Dept

032 J Silva 380 21 074 M Reis 400 25 089 C Melo 520 28 092 R Silva 480 25 112 R Pinto 390 21 121 V Simão 905 28 130 J Neves 640 28

NumDept NomeDept Ramal

21 Pessoal 142 25 Financeiro 143 28 Técnico 144 Empregado

(28)

Exemplo de um BD de Rede

21 Pessoal 142 25 Financeiro 143 28 Técnico 144 032 J Silva 380 112 R Pinto 390 121 V Simão 905 130 J Neves 640 092 R Silva 480 089 C Melo 520 074 M Reis 400 Departamento Empregado

(29)

Exemplo de um BD Hierárquico

21 Pessoal 142 25 Financeiro 143 28 Técnico 144

032 J Silva 380 112 R Pinto 390 121 V Simão 905 130 J Neves 640 092 R Silva 480 089 C Melo 520 074 M Reis 400 Departamento Empregado

(30)
(31)

Processo de Projeto de

Bancos de Dados

Mini-Mundo Análise de Requisitos Requisitos do BD Projeto Conceitual Esquema Conceitual

(em um modelo de dados de alto nível)

Projeto Lógico

Esquema Lógico

(em um modelo de dados lógico)

Projeto Físico

Esquema Físico (para um SGBD específico) Requisitos Funcionais

Análise Funcional Especificação das Transações

(em alto nível)

Projeto das Aplicações

Implementação

Programas Independente de SGBD

(32)

Aplicação exemplo

Banco de Dados de uma companhia

 Organizada em departamentos que têm um nome e um

número únicos e um empregado que gerencia o departamento. A data de quando o empregado começou a gerenciar o departamento deve ser registrada. Um departamento pode ter varias localizações

 Um departamento controla um número de projetos,

cada qual com um nome e número únicos e uma única localização

(33)

Aplicação exemplo

Banco de Dados de uma companhia

 Nós armazenamos para cada empregado seu

nome, identidade, endereço, salário, sexo, e data de nascimento. Um empregado é assinalado a um departamento mas pode trabalhar em diversos projetos, os quais não são necessariamente controlados pelo mesmo departamento. Nos registramos o número de horas por semana que o empregado trabalha em cada projeto e o supervisor direto de cada empregado

 Nós 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.

(34)

Esquema conceitual

(35)

Modelo ER - Conceitos

Entidades:

Objetos do mundo real que são de interesse

para alguma aplicação

Atributos:

Propriedades utilizadas para descrever uma

entidade

Name = John

Address = 2311 Kirby, Houston, TX Age = 55

Home Phone = 713-749-2630

e1

(36)

Modelo ER - Conceitos

Tipos (classes) de atributo:

 Simples ou compostos

 Ex. Endereço (Endereço da Rua (número, nome da rua,

número do apto), Cidade, Estado, CEP)

 Monovalorados ou multivalorados

 Ex. Profissão

 Armazenados ou derivados

 Data de Nascimento  Idade, Empregados trabalhando

no departamento  NumeroDeEmpregados

 Valores Null

 Não aplicável

 Ex. Número do apartamento

 Desconhecido

(37)

Modelo ER - Conceitos

Tipo de entidade:

Define um

conjunto

de entidades que têm

os mesmos atributos (propriedades)

Descreve o esquema para um conjunto de

entidades que compartilham a mesma

estrutura

Exemplos:

(38)

Modelo ER - Conceitos

Chave de um tipo de entidade:

 Atributo que possui valor único para cada entidade

(instância)

 Ex. Nome da companhia, identidade do empregado

 Chave pode ser formada por vários atributos: chave

composta

 Registro do Veiculo: Numero de Registro e Estado

Domínio de um atributo:

 Conjunto de valores que podem ser atribuídos a um

atributo para cada entidade individualmente

 Ex. Idade do Empregado: (16,70); Nome do

(39)

Figura 3.5

(40)

Esquema conceitual

(41)

Modelo ER - Conceitos

Relacionamentos:

Associações entre duas ou mais entidades

distintas (instâncias) com um significado

Exemplo:

 Employee John Smith Works-for Department

Research

 Employee Fred Brown Manages Department

Research

(42)

Modelo ER - Conceitos

Tipo de Relacionamento:

Define um conjunto de associações entre

n

tipos de entidade E

1

, E

2

,...,E

n

Exemplo:

 Works-for entre Employee e Department

(43)

Modelo ER - Conceitos

Tipo de Relacionamento:

 Matematicamente, um tipo de relacionamento R é

um conjunto de (instâncias de) relacionamentos ri, onde cada ri associa n (instâncias de) entidades (e1,...,en) e cada ej pertence a um tipo de entidade Ej

 R  E1 x E2 x ... x En  ri = (e1,...,en)

Grau de um Tipo de Relacionamento

 Número de tipos de entidade participantes de um

(44)
(45)
(46)

Esquema conceitual

(47)

Modelo ER - Conceitos

Restrições sobre tipos de relacionamento:

 Limitam as possiveis combinações de entidades que

podem participar no conjunto de relacionamentos

 Cardinalidade: Especifica o número de instâncias de

um tipo de relacionamento do qual uma entidade pode participar

 Participação: Especifica se a existência de uma

entidade depende de seu relacionamento com outra entidade através de um tipo de relacionamento 

parcial ou total

 Ex. Todo empregado deve trabalhar para um departamento

(total)

 Ex. Nem todo empregado gerencia um departamento (parcial)

Cardinalidade + Participação 

Restrições

(48)
(49)
(50)

Esquema conceitual

(51)

Modelo ER - Conceitos

Papéis e relacionamentos recursivos

Entidades atuam com um determinado

papel

Significado do papel é dado por um

nome

,

atribuído a cada tipo de entidade

Nomes só são necessários em tipos de

relacionamento que envolvam mais de uma vez

o

mesmo

tipo de entidade 

relacionamentos

recursivos

Exemplo:

Supervision

, onde

Employee

tem os

(52)

Figure 3.11

1 – Supervisor

(53)

Esquema conceitual

(54)

Modelo ER - Conceitos

Tipos de Entidade Fraca

Tipos de entidade que não têm chave própria

As instâncias são identificadas através do

relacionamento com entidades de outro tipo,

chamado de

dono

ou

identificador

, juntamente

com os valores de alguns atributos (

chave

parcial

)

(55)

Esquema conceitual

(56)

Notação ER

(57)
(58)

Introdução

O modelo relacional representa um banco de

dados como um

conjunto de relações

Informalmente, uma

relação

é uma tabela de

valores, onde cada linha representa uma

coleção de dados relacionados

Cada linha de uma tabela representa um “fato”

que tipicamente corresponde a uma entidade

ou relacionamento do mundo real

(59)

Conceitos Básicos

As linhas de uma relação (tabela) são chamadas

de

tuplas

Ao cabeçalho de cada coluna dá-se o nome de

atributo

O conjunto de valores que pode aparecer em cada

(60)

Conceitos Básicos

Esquema de relação

Descreve a relação

R(A

1

,A

2

, ...,A

n

), onde:

 R  Nome da relação

 Ai  Nome de um atributo  n  Grau da relação

 Cada Atributo Ai e’ o nome de um papel

desempenhado por algum dominio D no Esquema da relação R

Exemplo:

 Student(Name, SSN, HomePhone, Address,

(61)

Conceitos Básicos

Relação r(R)

Conjunto de tuplas: r = {t

1

,t

2

, ..., t

m

}

Cada tupla é uma lista ordenada de valores: t =

(62)

Características de uma Relação

As tuplas de uma relação

não

são

ordenadas

Registros em um arquivo são ordenados de

acordo com a posição em que são

armazenados no disco

(63)

Características de uma Relação

Uma tupla é uma lista ordenada de valores

O valor de cada atributo em uma tupla é

atômico

 Atributos compostos e multivalorados não são

permitidos

 O valor especial null é utilizado para representar valores

não conhecidos ou não aplicáveis a uma determinada tupla

(64)

Restrições de Integridade

Restrições de domínio

 Especificam que o valor de cada atributo A de uma

relação deve ser um valor atômico do domínio dom(A)

Restrições de chave

Por defini

ção

todas as tuplas sao distintas

 Um conjunto de atributos SK de um esquema de

relação R tal que, para duas tuplas quaisquer t1 e t2 de r(R), t1[SK]  t2[SK] é uma super-chave de R

 Super-chave default: todos os atributos

 Uma chave de R é uma super-chave com a propriedade

adicional de que nenhum de seus subconjuntos também seja uma super-chave de R

(65)

Restrições de Integridade

Restrições de chave

 Um esquema de relação pode ter mais de uma chave 

chaves candidatas

 Dentre as chaves candidatas de um esquema de

relação, uma delas é indicada como chave primária e as demais constituem as chaves alternativas

(66)

Restrições de Integridade

Restrições em valores null

 Especifica se a um atributo é permitido ter valores null  Exemplo. Todo Estudante deve ter um nome válido,

(67)
(68)

Restrições de Integridade

Além das restrições de domínio e de

chave

as

seguintes

restrições

de

integridade

são

parte

do

modelo

relacional:

Restrição de integridade de entidade

 Nenhum componente de uma chave primária

(69)

Restrições de Integridade

Restrição de integridade referencial

 Usada para manter a consistencia entre tuplas de

duas relacoes

 Uma tupla em uma relação que se refere a outra

relação deve referenciar uma tupla existente nesta outra relação

 Aparecem devido aos relacionamentos entre

entidades

 Seja FK um conjunto de atributos de um esquema

de relação R1 definido sobre o mesmo domínio dos atributos da chave primária PK de outro esquema R2. Então, para qualquer tupla t1 de R1:

 t1[FK] = t2[PK], onde t2 é uma tupla de R2 ou

(70)
(71)

A restrição de integridade referencial pode ser

expressa pela notação

R1[FK]  R2[PK],

onde

PK

é a

chave primária

de

R2

e

FK

é a

chave

estrangeira

de

R1

Exemplos:

EMPLOYEE[DNO]  DEPARTMENT[DNUMBER] WORKS_ON[ESSN]  EMPLOYEE[SSN] WORKS_ON[PNO]  PROJECT[PNUMBER]

Restrições de Integridade

(72)

Instância de um BD Relacional

1 4 5 5 5 Houston

(73)
(74)

Opções de Remoção da RIR

A cada RIR

R1[FK]  R2[PK]

é possível associar uma

opção de remoção que especifica como a remoção

de uma tupla de

R2

é executada em relação a

R1

As opções de remoção possíveis são:

 bloqueio  propagação

 substituição por nulos

Notação:

R1[FK]  R2[PK],

onde

op

{b, p, n}

(75)

Exemplos de RIR

EMPLOYEE(FNAME,MINT,LNAME,SSN,BDATE,ADDRESS,SEX, SALARY,SUPERSSN,DNO) EMPLOYEE[SUPERSSN]  EMPLOYEE[SSN] EMPLOYEE[DNO]  DEPARTMENT[DNUMBER] DEPARTMENT[DNAME,DNUMBER,MGRSSN,MGRDATE] DEPARTMENT[MGRSSN]  EMPLOYEE[SSN] DEPT_LOCATIONS(DNUMBER,LOCATION) DEPT_LOCATIONS[DNUMBER]  DEPARTMENT[DNUMBER] n b b p

(76)

Restrições de integridade referencial com opções de remoção n p p b b b b b

(77)

Operações sobre Relações

As operações sobre um BD relacional podem ser

classificadas em:

 Operações de recuperação (consulta)  Operações de atualização

Operações de atualização (sobre tuplas):

 Inserção (insert)  Remoção (delete)

(78)

Operações sobre Relações

Operações de atualização

Restrições de integridade não podem ser

violadas

 Inserção

 Restrição de Dominio: valor fora do dominio

 Restrição de Chave: valor ja’ existe

 Restrição de integridade de entidade: se chave for null

 Restrição de integridade referencial: se chave estrangeira

referencia tupla inexistente

(79)

Operações sobre Relações

Operações de atualização

Restrições de integridade não podem ser

violadas

 Remoção

 Restrição de integridade referencial: tupla deletada e’

referenciada por chaves estrangeiras

 Ação default: rejeitar inserção (com explicação)

 Segunda opção: propagar remoção de tuplas que violem

uma restrição de integridade referencial

 Terceira Opcao: Modificar o valor da chave estrangeira

(80)

Operações sobre Relações

Operações de atualização

Restrições de integridade não podem ser

violadas

 Modificação

 Modificar o valor de um atributo que nao e’ chave primaria

ou estrangeira não 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

(81)
(82)

Introdução

Originalmente proposta para o System R

desenvolvido nos laboratórios da IBM na década

de 70

SEQUEL (Structured English QUEry

Language)

Objeto

de

um

esforço

de

padronização

coordenado pelo ANSI/ISO:

 SQL1 (SQL-86)  SQL2 (SQL-92)  SQL3 (SQL:1999)

(83)

Introdução

SQL

=

LDD

+

LMD

+

LCD

Principais comandos:

 LDD:

 CREATE SCHEMA / TABLE / VIEW

 DROP SCHEMA / TABLE / VIEW

 ALTER TABLE

 LMD:

 SELECT, INSERT, UPDATE, DELETE

 LCD:  GRANT, REVOKE  Conceitos:  Table = Relação  Row = tupla  Column = atributo

(84)

Definição de Dados em SQL

Comando

CREATE SCHEMA

CREATE SCHEMA COMPANY AUTHORIZATION JS;

Comando

CREATE TABLE

CREATE TABLE <nome da tabela>

(<definições de colunas>

<definição da chave primária>

<definições de chaves alternativas> <definições de chaves estrangeiras>);

(85)

Definição de Dados em SQL

Exemplo de um comando

CREATE TABLE

CREATE TABLE EMPLOYEE

(FNAME VARCHAR(15) NOT NULL,

MINIT CHAR,

LNAME VARCHAR(15) NOT NULL,

SSN CHAR(9) NOT NULL,

SUPERSSN CHAR(9),

DNO INT NOT NULL,

PRIMARY KEY (SSN),

FOREIGN KEY (SUPERSSN) REFERENCES EMPLOYEE (SSN) ON DELETE SET NULL,

(86)

Definição de Dados em SQL

Opções de remoção (cláusula

ON DELETE

):

 CASCADE (propagação)

 SET NULL (substituição por nulos)

 SET DEFAULT (substituição por um valor default)  Opção default: bloqueio (RESTRICT)

As mesmas opções se aplicam à cláusula

ON

(87)

Restrição de Integridade Referencial

em SQL

FOREIGN KEY (SUPERSSN) REFERENCES EMPLOYEE(SSN) ON DELETE SET NULL

FOREIGN KEY (DNO) REFERENCES DEPARTMENT(DNUMBER)

FOREIGN KEY (DNUM) REFERENCES DEPARTMENT(DNUMBER) FOREIGN KEY (ESSN) REFERENCES EMPLOYEE(SSN) FOREIGN KEY (PNO) REFERENCES PROJECT(PNUMBER) FOREIGN KEY (ESSN) REFERENCES EMPLOYEE(SSN)

ON DELETE CASCADE

FOREIGN KEY (DNUMBER) REFERENCES DEPARTMENT(DNUMBER) ON DELETE CASCADE

(88)

Restrição de Integridade Referencial

em SQL

(89)

Definição de Dados em SQL

Comandos

DROP SCHEMA

e

DROP TABLE

DROP SCHEMA COMPANY CASCADE (RESTRICT);

RESTRICT: APENAS SE NAO TEM ELEMENTOS

DROP TABLE DEPENDENT CASCADE (RESTRICT);

RESTRICT: SE A TABELA NAO E’ REFERENCIADA EM

QUALQUER RESTRICAO

Comando ALTER TABLE

ALTER TABLE COMPANY.EMPLOYEE

ADD JOB VARCHAR(12);

 Inicialmente Null para todas as tuplas  ALTER TABLE COMPANY.EMPLOYEE

DROP ADDRESS CASCADE (RESTRICT);

RESTRICT: SE NENHUMA VISAO OU RESTRICAO

(90)

Consultas Básicas em SQL

Formato básico do comando

SELECT:

SELECT <lista de atributos> FROM <lista de tabelas>

WHERE <condição>;

Exemplo:

SELECT BDATE, ADDRESS FROM EMPLOYEE

WHERE FNAME=‘John’ AND

MINIT=‘B’ AND LNAME=‘Smith’;

(91)

Consultas Básicas em SQL

SELECT FNAME, LNAME, ADDRESS

FROM EMPLOYEE, DEPARTMENT

WHERE DNAME=‘Research’ AND DNO=DNUMBER;

SELECT PNUMBER, DNUM, LNAME, ADDRESS, BDATE

FROM PROJECT, DEPARTMENT, EMPLOYEE WHERE PLOCATION=‘Stafford’ AND

DNUM=DNUMBER AND MGRSSN=SSN;

(92)

Consultas Básicas em SQL

Atributos ambíguos e pseudônimos (

alias

)

SELECT DNAME, DLOCATION

FROM DEPARTMENT, DEPT_LOCATIONS WHERE DEPARTMENT.DNUMBER =

DEPT_LOCATIONS.DNUMBER;

SELECT E.FNAME, E.LNAME, S.FNAME, S.LNAME FROM EMPLOYEE AS E, EMPLOYEE AS S

(93)

Consultas Básicas em SQL

Consultas sem a cláusula

WHERE

SELECT SSN, LNAME, SALARY FROM EMPLOYEE;

SELECT LNAME, DNAME

FROM EMPLOYEE, DEPARTMENT

Atenção! Esta consulta corresponde a um produto cartesiano das tabelas EMPLOYEE e DEPARTMENT

(94)

Consultas Básicas em SQL

Manipulando tabelas como conjuntos

SELECT SALARY FROM EMPLOYEE;

SELECT DISTINCT SALARY FROM EMPLOYEE;

(SELECT PNUMBER

FROM PROJECT, DEPARTMENT, EMPLOYEE

WHERE DNUM=DNUMBER AND MGRSSN=SSN AND

LNAME=‘Smith’)

UNION

(SELECT PNUMBER

FROM PROJECT, WORKS_ON, EMPLOYEE

WHERE PNUMBER=PNO AND ESSN=SSN AND

LNAME=‘Smith’);

(95)

Consultas Complexas em SQL

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

(96)

Consultas Complexas em SQL

Comparação 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

(97)

Consultas Complexas em SQL

Comparação 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

FROM EMPLOYEE WHERE DNO=5);

(98)

Consultas Complexas em SQL

Uso da função

EXISTS

SELECT E.FNAME, E.LNAME FROM EMPLOYEE AS E

WHERE EXISTS (SELECT *

FROM DEPENDENT

WHERE E.SSN=ESSN AND

E.SEX=SEX AND

E.FNAME=DEPENDENT_NAME);

SELECT FNAME, LNAME FROM EMPLOYEE

WHERE NOT EXISTS (SELECT *

FROM DEPENDENT WHERE SSN=ESSN);

(99)

Consultas Complexas em SQL

Uso do operador

CONTAINS

SELECT FNAME, LNAME FROM EMPLOYEE

WHERE ((SELECT PNO

FROM WORKS_ON WHERE SSN=ESSN) CONTAINS (SELECT PNUMBER FROM PROJECT WHERE DNUM=5));

(100)

Facilidades Adicionais

Uso do operador

JOIN

SELECT FNAME, LNAME, ADDRESS

FROM (EMPLOYEE JOIN DEPARTMENT ON DNO=DNUMEBR)

WHERE DNAME=‘Research’; SELECT DNAME, DLOCATION

FROM (DEPARTMENT NATURAL JOIN DEPT_LOCATIONS);

SELECT FNAME, LNAME, DEPENDENT_NAME

FROM (EMPLOYEE LEFT OUTER JOIN DEPENDENT ON SSN=ESSN);

(101)

Facilidades Adicionais

Agrupamento

SELECT DNO, COUNT(*), AVG(SALARY) FROM EMPLOYEE

(102)

Facilidades Adicionais

Agrupamento com a cláusula

HAVING

SELECT PNUMBER, PNAME, COUNT(*) FROM PROJECT, WORKS_ON

WHERE PNUMBER=PNO

GROUP BY PNUMBER, PNAME HAVING COUNT(*) > 2;

(103)
(104)

3 3 3 3

(105)

Atualizações 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);

INSERT INTO EMPLOYEE(FNAME, LNAME, SSN, DNO) SELECT * FROM INPUT;

(106)

Atualizações em SQL

Comando

DELETE

DELETE FROM EMPLOYEE

WHERE LNAME=‘Brown’;

DELETE FROM EMPLOYEE

WHERE DNO IN (SELECT DNUMBER FROM DEPARTMENT

WHERE DNAME=‘Research’); DELETE FROM EMPLOYEE;

(107)

Atualizações 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

(108)

Projeto Lógico de Bancos de

Dados Relacionais

(109)

Tópicos

Processo de Projeto de Bancos de Dados

Exemplo Preliminar

Representação Relacional de Esquemas ER

Implementação Usando SQL

(110)

Processo de Projeto de

Bancos de Dados

Caracterização

 Complexidade  Multiplicidade de tarefas 

Fases

 Coleção e análise de requisitos  Projeto conceitual

 Escolha de um sistema gerenciador de banco de dados  Projeto lógico (ou mapeamento para o modelo de

dados do SGBD escolhido)

 Projeto físico

(111)

Fases do Processo de Projeto de

Bancos de Dados

Mini-Mundo Análise de Requisitos Requisitos do BD Projeto Conceitual Esquema Conceitual

(em um modelo de dados de alto nível)

Projeto Lógico

Esquema Lógico

(em um modelo de dados lógico)

Projeto Físico

Esquema Físico (para um SGBD específico) Requisitos Funcionais

Análise Funcional Especificação das Transações

(em alto nível)

Projeto das Aplicações

Implementação

Programas Independente de SGBD

(112)

Abordagem ER para Projeto Lógico de

Bancos de Dados

Relacionais

Mini-Mundo Análise de Requisitos Requisitos do BD Projeto Conceitual Esquema Conceitual

(em um modelo de dados de alto nível)

Projeto Lógico Esquema Lógico (em um modelo de dados

lógico) Projeto Físico Esquema Físico (para um SGBD específico) Requisitos Funcionais Análise Funcional Especificação das Transações

(em alto nível)

Projeto das Aplicações

Implementação Programas Independente de SGBD Específico para um SGBD Modelo ER Modelo Relacional SGBD Relacional

(113)

Aplicação exemplo

Banco de Dados de uma companhia

 Organizada em departamentos que têm um nome e um

número únicos e um empregado que gerencia o departamento. A data de quando o empregado começou a gerenciar o departamento deve ser registrada. Um departamento pode ter varias localizações

 Um departamento controla um número de projetos,

cada qual com um nome e número únicos e uma única localização

(114)

Aplicação exemplo

Banco de Dados de uma companhia

 Nós armazenamos para cada empregado seu

nome, identidade, endereço, salário, sexo, e data de nascimento. Um empregado e’ assinalado a um departamento mas pode trabalhar em diversos projetos, os quais não são necessariamente controlados pelo mesmo departamento. Nos registramos o número de horas por semana que o empregado trabalha em cada projeto e o supervisor direto de cada empregado

 Nós 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.

(115)
(116)
(117)
(118)

EMPLOYEE[SUPERSSN]  EMPLOYEE[SSN] EMPLOYEE[DNO]  DEPARTMENT[DNUMBER] DEPARTMENT[MGRSSN]  EMPLOYEE[SSN] DEPT_LOCATIONS[DNUMBER]  DEPARTMENT[DNUMBER] PROJECT[DNUM]  DEPARTMENT[DNUMBER] WORKS_ON[ESSN]  EMPLOYEE[SSN] WORKS_ON[PNO]  PROJECT[PNUMBER] DEPENDENT[ESSN]  EMPLOYEE[SSN] n b b b b b p p

(119)

Representação Relacional de Esquemas

ER

Estratégias de representação

 Mapeamento 1-1: cada tipo de entidade ou de

relacionamento é representado por um esquema de relação separado

 Mapeamento otimizado: tipos de relacionamento

funcionais (1:1 e N:1) e subtipos de entidade são colapsados e representados através de atributos em outro esquema de relação

(120)

Modelo Relacional

Notação

Esquema de relação

 R (A1,

A

2,…,An), onde A1 é a chave primária de R

Restrição de integridade referencial

 R1 [X]  R2 [Y], onde X é um conjunto de atributos

de R1 que referencia a chave Y de R2

Restrições estruturais

 <expr1> op <expr2>, onde <expr1> e <expr2> são

expressões da álgebra relacional e op é um dos operadores , ,  ou 

(121)

Exemplo de um Diagrama ER

Empregado Projeto Dependente Departamento Trabalha-para Gerencia Participa-de Controla N 1 1 1 1 1 N N N M

NEmp NomeEmp Salário

NomeDep DataNasc

NDept NomeDept Ramal

NProj NomeProj Local HsTrab

(122)

Representação de Tipos de Entidade

(sem atributos multivalorados)

Empregado

NEmp

NomeEmp

Salário

(123)

Representação de Tipos de Entidade

(com atributos multivalorados)

Departamento

NDept

NomeDept

Ramal

Departamento (NDept(nn),NomeDept)

Ramal-Departamento (NDept(nn), Ramal(nn))

(124)

Representação de Tipos de

Entidade Fraca

Empregado (NEmp(nn),...)

Dependente (NEmp(nn),NomeDep(nn), DataNasc) Dependente [NEmp] p Empregado [NEmp]

Empregado 1 N Dependente

NEmp NomeDep DataNasc

(125)

Representação de Tipos de

Relacionamento N:1

(mapeamento 1-1)

Empregado N 1 Departamento NEmp NDept Trabalha-para Empregado (NEmp(nn),...) Departamento (NDept(nn),...)

Trabalha-para [NEmp] p Empregado [NEmp] Trabalha-para (NEmp(nn),NDept(nn))

Trabalha-para [NDept] b Departamento [NDept]

NEmp(Empregado) = NEmp(Trabalha-para)

(126)

Representação de Tipos de

Relacionamento N:1

(mapeamento otimizado)

Empregado N 1 Departamento NEmp NDept Trabalha-para Empregado (NEmp(nn),...,NDept(nn)) Departamento (NDept(nn),...)

(127)

Representação de Tipos de

Relacionamento 1:1

(mapeamento otimizado)

Empregado 1 1 Departamento NEmp NDept Gerencia Empregado (NEmp(nn),...) Departamento (NDept(nn),...,NEmp(nn))

Departamento [NEmp] b Empregado [NEmp]

(128)

Representação de Tipos de

Relacionamento M:N

Empregado M N Projeto NEmp NProj Participa-de HsTrab Empregado (NEmp(nn),...) Projeto (NProj(nn), ...)

Participa-de [NEmp]  Empregado [NEmp] Participa-de (NEmp(nn),NProj(nn), HsTrab)

Participa-de [NProj]  Projeto [NProj]

p p

(129)

Implementação usando SQL

SQL

 Composta de três sublinguagens: LDD, LMD e LCD  Objeto de padronização pelo ANSI/ISO

Comando básico de definição de dados:

create table <table name> (<column definitions>

<primary key definition> <alternate key definitions> <foreign key definitions>)

(130)

Definição de um Esquema de Relação

em SQL

create table Empregado

(NEmp

char(3) not null,

NomeEmp

char(30) not null,

Salario

decimal(6,2),

NDept

char(2) not null,

primary key (NEmp),

foreign

key

(NDept)

references

(131)

Restrições de Integridade em SQL

Restrições de unicidade (

unique constraints

) que

indicam a chave primária e as chaves alternativas

de uma tabela

Restrições de integridade referencial (

referential

constraints

) que especificam as chaves

estrangei-ras de uma tabela

Restrições de verificação (

check constraints

) que

especificam condições que devem ser satisfeitas

por coluna/linhas de uma tabela ou entre tabelas

(132)

Restrições de Unicidade

Chave primária

primary key (<attribute list>)

Chaves alternativas

unique (<attribute list>)

create table Departamento

( ...

primary key (NDept), unique (NomeDept),

(133)

Restrições de Integridade Referencial

foreign key (<attribute list>)

references <table name> [(<attribute list>)]

[on delete cascade | set null | set default]

[on update cascade | set null | set default]

create table Participa-de

(...

foreign key NEmp references Empregado on delete cascade)

(134)

Referências

 Batini, C.; Ceri, S.; Navathe, S.B. Conceptual Database Design: An

Entity-Relationship 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 -ER’96. Springer-Verlag, Berlin, 1996, pp. 242-256.

 Silva, A.S.; Laender, A.H.F.; Casanova, M.A. On the Relational Representation

Referências

Documentos relacionados

Teoria do Dano Não Linear Para superar os problemas na regra de Miner.. -As teorias não lineares exigem constantes adicionais do material e de geometria que devem ser obtidas a

• Ponto 38: Antonio Jose Gomes esquina com a Francisco de Assis Andrade • Ponto 39: Antonio jose Gomes em frente ao terreno baldio de esquina • Ponto 40: Jose Bonifacio próximo

indefinidamente e se asfixiem nos espaços restritos que foram suas primeiras moradas, que neles acumulem as maravilhas das ciências, das artes, das letras e da

Cada igreja deverá: (1) compartilhar da missão da Comunhão Anglicana, confiada por Cristo à sua Igreja, numa vida comum de serviço; (2) cooperar, tanto quanto for praticável, com

Faz-se saber que, perante este Instituto Superior Técnico da Universidade de Lisboa (abreviadamente designado Instituto) e pelo prazo de 10 dias úteis a contar

5.13.2 No caso dos Planos NET FONE, se o cliente perder a promoção COMBO MULTI NET em razão da inviabilidade técnica, ou por qualquer outro motivo nos termos do presente

Nesse contexto, o principal objetivo dessa pesquisa foi realizar ensaios de tratabilidade em um solo contaminado com naftaleno e avaliar o percentual de degradação, através

Com vão dimensionado entre escoras com o valor de 1,60 metros para pré-lajes, considerando a treliça metálica e a placa rígida de concreto, foi aprovado em todos os eventos desde