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

Documentos relacionados
O Modelo Relacional. Criando relações em SQL

modelo introduzido por E. F. Codd Meados da década de 70: protótipos. INGRES (UC Berkeley, 73 77) System R (IBM Research at San Jose, 74 78)

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

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

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

Banco de Dados I Introdução SQL

Manipulação de Dados com SQL

Teste Exemplo Revisão da tentativa 1

Banco de Dados. Professora: Luciana Faria

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

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD.

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

SQL Linguagem de Definição de Dados

Modelo Relacional Prof. Msc Denival A. dos Santos

Atualização e Inserção de Dados. SQL Avançado. Pedro F. Carvalho OCP Oracle g

SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação

Revisão de Bancos de Dados

MySql. Introdução a MySQL. Andréa Garcia Trindade

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

BCD29008 Banco de dados

Parte II Modelo de Dados Relacional. Evandro E. S. Ruiz

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

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

Bibliografia. Bases de Dados 2012/2013 Modelo Relacional. Helena Galhardas. Raghu Ramakrishnan, Database Management Systems, Cap. 3 10/2/ IST

Projeto Conceitual Usando o Modelo-Entidade Relacionamento

Rápida revisão do Modelo Relacional

A linguagem SQL

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

Preparação criar tabela. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 12/11/2018

DCC011 Introdução a Banco de Dados SQL gerenciar tabelas e dados

SQL. Linguagem de Definição de Dados (DDL) Tipos em SQL. Tipos Data/Tempo em SQL (cont.)

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

SQL Básica. Andre Noel

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

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

Bancos (Bases) de Dados

Restrições do modelo relacional

Informática I. Aula 8. Aula 8-25/09/2006 1

MODELO RELACIONAL PARTE 2

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

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

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

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

Bases de Dados. DDL Data Definition Language

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

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

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

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

Linguagem de Definição de Dados (DDL)

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

Tabelas. Banco de Dados I MySQL

Linguagem SQL (Parte II)

Subsistema de Integridade Semântica

Tornou-se um padrão de fato para aplicações comerciais, devido a sua simplicidade e performance.

Abordagem relacional. Capítulo 4

Disciplina: Banco de Dados Tema: SQL Parte 2

Modelagem Conceitual parte I

Modelagem Conceitual parte I

MODELO RELACIONAL Prof.: Jacson Tiola Técnico em Redes de Computadores

Subsistema de Integridade Semântica

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

INTRODUÇÃO AO MODELO RELACIONAL

Objetos Persistentes. Objetos Persistentes: são objetos que requerem armazenamento persistente.

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

Introdução ao PostgreSQL

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

Instrução Create Table

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

Modelo Entidade-Relacionamento (E-R)

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

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

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

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

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

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

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

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

Monitoria GDI. Aula Prática. OR (Aula 1)

Definição de Dados com SQL

SQL (Structured Query Language)

SQL-99: Esquema de BD EMPRESA

Linguagem de Consulta - SQL

Introdução ao Modelo Relacional

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

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

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

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

SQL (Structured Query Language)

Introdução ao SQL. Aécio Costa

Projeto de Banco de Dados

SQL (Structured Query Language)

Linguagem SQL. Comandos Básicos

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

Introdução a Bancos de Dados

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

MODELAGEM DE DADOS MODELO FÍSICO

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

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

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

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

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 rdevem ser 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

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

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

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

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