O Modelo Relacional. Criando relações em SQL

Documentos relacionados
O Modelo Relacional. Database Management Systems, R. Ramakrishnan (tradução, autorizada, de Anna & Mario Nascimento)

Modelo Relacional 4 SISTEMAS DE INFORMAÇÃO E BASES DE DADOS UNIVERSIDADE DE LISBOA FACULDADE DE CIÊNCIAS DEPARTAMENTO DE INFORMÁTICA

Aula 6 BD1 Modelo Relacional. Profa. Elaine Faria UFU

O Modelo Relacional. Embrapa Informática Agropecuária Av. André Tosello, Barão Geraldo Caixa Postal Campinas SP Brazil

Sistemas de Informação e Bases de Dados 2012/2013. Modelo Relacional. Alberto Sardinha 2012 IST

Banco de Dados I Introdução SQL

Esquema da Relação. Modelo Relacional. Instância da Relação. Exemplo. Uma base de dados é uma colecção de uma ou mais relações com nomes distintos

Banco de Dados. Professora: Luciana Faria

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

BANCO DE DADOS II SQL Básico. COTEMIG Gerson Borges

SQL Linguagem de Definição de Dados

Revisão de Bancos de Dados

Bases de Dados 2012/2013 Restrições de Integridade em SQL. Helena Galhardas 2012 IST. Bibliografia

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

BCD29008 Banco de dados

A linguagem SQL

Restrições do modelo relacional

Restrições ao Domínio Integridade Referencial Asserções Triggers Segurança e Autorizações

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

SQL: Definição de tabelas, Modificações à Base de Dados

Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I

Projeto Conceitual Usando o Modelo-Entidade Relacionamento

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL. Definição do Esquema da Base de Dados. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

Modelo Relacional + SQL (DDL) Material elaborado pela Prof. Karin Becker

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

Linguagem SQL (Parte II)

Bases de Dados. DDL Data Definition Language

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

Sistemas de Informação e Bases de Dados 2012/2013. Restrições de Integridade em SQL

Introdução ao SQL. Aécio Costa

Banco de Dados. Aula 7 - Prof. Bruno Moreno 13/09/2011

Bancos (Bases) de Dados

MATA60 BANCO DE DADOS Aula 5- Modelo Relacional. Prof. Daniela Barreiro Claro

Correção da 1a Prova de GBD1 2010/1. Profa. Sandra de Amo

Linguagem de Definição de Dados (DDL)

Correção da 1a Prova de GBD1 2009/2. Profa. Sandra de Amo

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

SQL-99: Esquema de BD EMPRESA

Modelagem Conceitual parte I

Modelagem Conceitual parte I

SQL (Structured Query Language)

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

Linguagem de Consulta - SQL

Instrução Create Table

SQL (Structured Query Language)

Linguagem SQL. Comandos Básicos

Modelo Entidade-Relacionamento (E-R)

Modelo Relacional. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012

SQL (Structured Query Language)

Projeto Conceitual Usando o Modelo-Entidade Relacionamento

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A

Programação SQL. Introdução

Marcelo Henrique dos Santos

Restrições de Integridade Semântica

Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka

BANCO DE DADOS CONCEITOS BÁSICOS

MODELO DE BANCO DE DADOS RELACIONAL

Integridade dos Dados

LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

INTRODUÇÃO AO MODELO RELACIONAL

SQL. Índices, views e restrições. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

SQL DDL. Frederico D. Bortoloti

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011

Views. uma view é uma tabela virtual. não existe fisicamente na BD. é definida à custa de outras tabelas ou views. CREATE VIEW <nome> AS <query>;

Chave alternativa. Angélica Toffano Seidel Calazans Abordagem Relacional

'%'! $!0" $ 8 ' %%! % '! $ $$% + ' %!%$/)!'4!+,"/)!)+,/)% *! +,"0''% * %$!*!$$ #!"%&%'%'%$! "94(# ' %'$%$$$%0%$%' *!% %%%'!**% > %% %%!31?

UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA. Banco de Dados II. Integridade. Carlos Eduardo Portela Serra de Castro

Abordagem relacional. Capítulo 4

A U L A 9 F U N Ç Õ E S A G R E G A D A S E C Á L C U L O S

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

S U B G R U P O S D M L E D Q L : A L T E R A N D O E A P A G A N D O D A D O S E M U M A T A B E L A

Conceitos básicos. Funcionario SIAPE Nome Lotacao Cargo Salario Admissao

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

SQL BÁSICO. Luiz Antônio Vivacqua Corrêa Meyer

Flickr, shindotv/ / BASES DE DADOS. Laboratórios de Informática João Paulo Barraca, André Zúquete, Diogo Gomes

L Q S m e g a u g n Li A

INF1383 -Bancos de Dados

Introdução ao Modelo Relacional

O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Disciplina de Banco de Dados Parte V

SQL (Linguagem de Consulta Estruturada)

BANCO DE DADOS I. Exercícios

Linguagem de Consulta Estruturada (SQL)

Prof.: Clayton Maciel Costa

Comandos DDL. id_modulo = id_m odulo

SQL: Vistas, Indices, Autorização, Restrições

Banco de dados. Linguagens de Banco de Dados II. Wedson Quintanilha da Silva -

MODELAGEM DE DADOS MODELO FÍSICO

Comandos de Manipulação

Introdução à Manipulação de Dados

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL)

Transcrição:

O Modelo Relacional 1 Criando relações em SQL Observe que o tipo (domínio) de cada campo está especificado, e reforçado pelo SGBD, não importando se tuplas são adicionadas ou modificadas. A tabela Enrolled mantêm informações sobre cursos que os estudantes fazem. CREATE TABLE Students (sid: CHAR(20), name: CHAR(20), login: CHAR(10), age: INTEGER, gpa: REAL) CREATE TABLE Enrolled (sid: CHAR(20), cid: CHAR(20), grade: CHAR(2)) 2 1

Adicionando e removendo tuplas Inserindo um tupla: INSERT INTO Students (sid, name, login, age, gpa) VALUES (53688, Smith, smith@ee, 18, 3.2) Removendo tuplas satisfazendo um condição (e.g., name = Smith): DELETE FROM Students S WHERE S.name = Smith Mais trade veremos variações poderosas desses comandos. 3 Restrições de integridade (RIs) RI: condição que deve ser satisfeita para qualquer instância do BD, p.ex., restrições de domínio. RIs são especificadas na definição do esquema. RIs são checadas quando o BD é modificado. Uma instância legal de uma relação satisfaz todas as RIs (). Checar as RIs é responsabilidade do SGBD Evita erros na entrada de dados! 4 2

Restrições de chave primária Um conj. de atributos é uma chave para uma relação se : 1. Não há duas tuplas distintas que tenham a mesma chave, e 2. Isto não seja verdade para nenhum subconj. da chave. Se não é uma superchave. Se houver mais de uma chave para a relação, uma é escolhida pelo DBA como sendo a chave primária. P.ex., sid é chave para Students. (E name?) O conjunto {sid, gpa} é uma superchave. 5 Chaves primárias e candidatas Possibilidade de chaves candidatas (especificadas usando UNIQUE), uma é escolhidas chave primaria. Para um dado student e course, há uma única nota. vs. Students podem tomar apenas um course, e receber uma nota por aquele curso; além disso não há dois alunos num curso com a mesma nota. Usada sem cuidado uma RI pode previnir o armazenamento de uma instância factível! CREATE TABLE Enrolled (sid CHAR(20) cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid,cid) ) CREATE TABLE Enrolled (sid CHAR(20) cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid), UNIQUE (cid, grade) ) 6 3

Chave estrangeira e RIs Chave estrangeira: Conj. de atributos em uma relação que é usado para referenciar uma tupla em outra relação (deve corresponder a chave primária daquela relação). Uma espécie de ponteiro lógico. P.ex., sid é chave estrangeira se referindo a Students: Enrolled(sid: string, cid: string, grade: string) Se todas restriçõoes de chave estrangeira são satisfeitas, as RIs são satisfeitas, não há referências penduradas. Cite um modelo sem RIs? Links em HTML! 7 Chaves estrangeiras em SQL Apenas a alunos listados na relação Students devem ter permitida a matrícula. CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid,cid), FOREIGN KEY (sid) REFERENCES Students ) Enrolled sid cid grade 53666 Carnatic101 C 53666 Reggae203 B 53650 Topology112 A 53666 History105 B Students sid name login age gpa 53666 Jones jones@cs 18 3.4 53688 Smith smith@eecs 18 3.2 53650 Smith smith@math 19 3.8 8 4

Satisfazendo RIs Considere Students e Enrolled; sid em Enrolled é uma chave estrangeira que referencia Students. O que acontece se uma tupla de Enrolled com um student id (sid) inexistente é inserido? (Rejeição!) E quando uma tupla de Students é removida? Remova todas tuplas de Enrolled que se referem a ela. Disabilite remoção de tuplas referenciadas de Students. Mude o sid de tuplas em Enrolled que se referem a esta para um sid default ou null. E se a chave primária de Students for mudada? 9 De onde vem a RIs? RIs são baseadas na semântica do mundo real descrito pela relacões do BD. Podemos verificar se uma instância do BD satisfaz as RIs mas nunca podemos inferir que uma RI e sempre satisfeita usando somente uma instância do BD. Todavia uma RI deve ser verdadeira para todas as instâncias possíveis. RIs usando Chaves e chaves estrangeiras são as mais comuns, outras, mais gerais, são possíveis. 10 5

Linguagens de consultas relacionais O ponto forte do modelo relacional: suporte a uma linguagem simples, mas poderosa, de consulta. Consultas podem ser escritas intuitivamente, o SGBD é responsável pela uma avaliação eficiente. chave : semântica precisa para consultas. Permite o otimizador re-ordenar operações, e ainda assim garantindo a mesma resposta (correta). 11 A linguagem de consulta SQL A linguagem de consulta relacional mais usada. Padrão corrente: SQL-92. Encontre todos os students com 18 anos: SELECT * FROM Students S WHERE S.age=18 sid name login age gpa 53666 Jones jones@cs 18 3.4 53688 Smith smith@ee 18 3.2 Para mostras apenas os names a 1a linha muda para: SELECT S.name 12 6

Consultando várias relações O que faz a seguinte consulta? SELECT S.name, E.cid FROM Students S, Enrolled E WHERE S.sid=E.sid AND E.grade= A Dada a seguinte instância de Enrolled (RI satisfeita? (veja a instância anterior de Students): sid cid grade 53831 Carnatic101 C 53831 Reggae203 B 53650 Topology112 A 53666 History105 B obtemos: S.name Smith E.cid Topology112 13 Semântica de uma consulta Um método de avaliação conceitual para a consulta anterior: 1. FROM: calcule o produto cartesiano de Students e Enrolled 2. WHERE: Verifique as condições, descartando as tuplas que falharem 3. SELECT: Remova os atributos não desejados Importante: a avaliação real poderia ser muito diferente, porém a resposta seria a mesma. 14 7

Produto cartesiano das instâncias de Students e Enrolled S.sid S.name S.login S.age S.gpa E.sid E.cid E.grade 53666 Jones jones@cs 18 3.4 53831 Carnatic101 C 53666 Jones jones@cs 18 3.4 53832 Reggae203 B 53666 Jones jones@cs 18 3.4 53650 Topology112 A 53666 Jones jones@cs 18 3.4 53666 History105 B 53688 Smith smith@ee 18 3.2 53831 Carnatic101 C 53688 Smith smith@ee 18 3.2 53831 Reggae203 B 53688 Smith smith@ee 18 3.2 53650 Topology112 A 53688 Smith smith@ee 18 3.2 53666 History105 B 53650 Smith smith@math 19 3.8 53831 Carnatic101 C 53650 Smith smith@math 19 3.8 53831 Reggae203 B 53650 Smith smith@math 19 3.8 53650 Topology112 A 53650 Smith smith@math 19 3.8 53666 History105 B 15 Resumo - Modelo relacional Uma representação tabular dos dados. Simples e intuitiva, é o padrão de facto. Restrições de integridade (RIs) podem ser especificadas, baseadas na semântica da aplicação. SGBD verifica as mesmas. RIs importantes: chaves primárias e estrangeiras. Sempre há restrições de domínio. Linguagem de consulta natural e poderosa. 16 8