Buscar

3- Banco de dados relacional

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

Continue navegando