Baixe o app para aproveitar ainda mais
Prévia do material em texto
Carla Fernandes DCA 0120 – Projeto e Desenvolvimento de So9ware carlafcf@gmail.com Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação DCA 0120 – Projeto e Desenvolvimento de So9ware Carla Fernandes Banco de Dados Relacional 1 Carla Fernandes DCA 0120 – Projeto e Desenvolvimento de So9ware Banco de dados relacional • Composto por um conjunto de tabelas – Cada tabela possui um nome único • instructor e course – ID e course_id representam cada elemento das tabelas 2 Carla Fernandes DCA 0120 – Projeto e Desenvolvimento de So9ware Banco de dados relacional • Relação – Tabela • Tupla – Linha da tabela • Atributo – Coluna da tabela – Domínio • Valores permiMdos 3 Carla Fernandes DCA 0120 – Projeto e Desenvolvimento de So9ware Banco de dados relacional • Tabela prereq – Relaciona dois elementos da tabela course • Tupla – Sequência de valores – Uma linha da tabela – Não importa a ordem 4 Carla Fernandes DCA 0120 – Projeto e Desenvolvimento de So9ware Esquema de banco de dados • Esquema de banco de dados – Design lógico do banco de dados – Conjunto de atributos • Instância de banco de dados – Dados no BD em um determinado instante 5 • Qual o esquema da tabela department? Carla Fernandes DCA 0120 – Projeto e Desenvolvimento de So9ware Esquema de banco de dados • Esquema de banco de dados – Design lógico do banco de dados – Conjunto de atributos • Instância de banco de dados – Dados no BD em um determinado instante 6 • Qual o esquema da tabela department? – department (dept_name, building, budget) Carla Fernandes DCA 0120 – Projeto e Desenvolvimento de So9ware Banco de dados • Um banco de dados é formado por um conjunto de tabelas • Exemplo: Banco – account – depositor – customer • O que aconteceria se fosse uMlizar uma tabela para representar tudo – bank (account_number, balance, curstomer_name, …) – RepeMção de informação • Se duas pessoas comparMlham uma conta, o que é repeMdo? – Valores nulos • Se uma pessoa não possui uma conta 7 Carla Fernandes DCA 0120 – Projeto e Desenvolvimento de So9ware Tabelas com mesmo atributo • Department • Instructor 8 Carla Fernandes DCA 0120 – Projeto e Desenvolvimento de So9ware Tabelas com mesmo atributo • Como saber todos os instrutores que trabalham no prédio Watson? 9 Carla Fernandes DCA 0120 – Projeto e Desenvolvimento de So9ware Exemplo • Universidade – Uma aula pode ser oferecida várias vezes, em diferentes semestres – Precisamos da seguinte tabela: • Descrevendo cada vez em que a aula é oferecida • Esquema – sec:on (course_id, sec_id, semester, year, building, room_number, :me_slot_id) 10 Carla Fernandes DCA 0120 – Projeto e Desenvolvimento de So9ware Exemplo • Universidade – Associação entre o professor e a aula • teaches (ID, course_id, sec_id, semester, year) 11 Carla Fernandes DCA 0120 – Projeto e Desenvolvimento de So9ware Exemplo • Universidade – student(ID,name,dept_name, tot_cred) – advisor (s_id, i_id) – takes(ID,course_id, sec_id, semester, year, grade) – classroom(building, room_number, capacity) – :me_slot(:me_slot_id, day, start_:me, end_:me) 12 Carla Fernandes DCA 0120 – Projeto e Desenvolvimento de So9ware Exemplo 2 • Banco de dados de um banco – Conta – Cliente – Debito 13 Carla Fernandes DCA 0120 – Projeto e Desenvolvimento de So9ware Linguagens para consulta em BD • Realizam operações no banco de dado que resultam no resultado esperado • Query Languages 14 Carla Fernandes DCA 0120 – Projeto e Desenvolvimento de So9ware Chaves • Em uma tabela não é possível haver mais de uma tupla com os mesmos valores de atributos • Superchave – IdenMfica unicamente uma tupla em uma tabela – Pode ser composto por mais de um atributo – Ideal: id 15 Carla Fernandes DCA 0120 – Projeto e Desenvolvimento de So9ware Chaves • Superchave – R: atributos da tabela – K é um subset de R – Se K é uma superchave • Se t1 e t2 pertencem à tabela • Se t1≠t2 então – t1.k≠t2.k 16 Carla Fernandes DCA 0120 – Projeto e Desenvolvimento de So9ware Chaves • Candidate Keys – Nenhum subconjunto é uma superchave – Exemplo • {ID} • {name, dept_name} – {ID, name} não é uma candidate key • Uma tabela pode ter mais de uma candidate key – Primary key • Escolha de uma dentre as candidate keys 17 Carla Fernandes DCA 0120 – Projeto e Desenvolvimento de So9ware Chaves • Considere uma tabela USUÁRIO • Primary keys – Nome? – RG? – CPF? – Email? – Endereço? 18 Carla Fernandes DCA 0120 – Projeto e Desenvolvimento de So9ware Chaves • Chave estrangeira 19 Carla Fernandes DCA 0120 – Projeto e Desenvolvimento de So9ware Próxima aula DiagramaEnMdade-‐Relacionamento 20
Compartilhar