GBC043–Sistemas de Banco de Dados (SBD)
Plano de Ensino (Versão Preliminar)
2020/3.AARE.Etapa 1
Ilmério Reis da Silvailmerio arroba ufu.brwww.facom.ufu.br/~ilmerio/GBC043MS Teams: GBC043.2020/3.T1UFU/FACOM
Página:2
Motivação (Justificativa)
Por que…
…SBD é essencial para qualquer organização;
Página:3
Motivação (Justificativa)
Por que…
…SBD é essencial para qualquer organização;
...o conteúdo da disciplina é fundamental para a Formação Tecnológica na área de Computação e Informática; e
Página:4
Motivação (Justificativa)
Por que…
…SBD é essencial para qualquer organização;
...o conteúdo da disciplina é fundamental para a Formação Tecnológica na área de Computação e Informática; e
...as técnicas e formalismos apresentados são importantes no desenvolvimento profissional e na atuação do egresso.
Página:5
Objetivo Geral
Para...
...Capacitar o aluno a utilizar princípios e ferramentas teóricas para modelar a semântica de uma aplicação com abordagem de banco de dados; e
Página:6
Objetivo Geral
Para...
...Capacitar o aluno a utilizar princípios e ferramentas teóricas para modelar a semântica de uma aplicação com abordagem de banco de dados; e
...Capacitar o aluno a implementar sistemas de informação utilizando um
Sistema Gerenciador de Banco de Dados-SGBD.
Página:7
Objetivos EspecíficosPara capacitar o aluno a:
1 interagir com um SGBD instalado em um servidor, aplicando os conceitos de arquitetura de SGBD;
Página:8
Objetivos EspecíficosPara capacitar o aluno a:
1 interagir com um SGBD instalado em um servidor, aplicando os conceitos de arquitetura de SGBD;
2 projetar um esquema de banco de dados e implantar um banco de dados em um servidor;
Página:9
Objetivos EspecíficosPara capacitar o aluno a:
1 interagir com um SGBD instalado em um servidor, aplicando os conceitos de arquitetura de SGBD;
2 projetar um esquema de banco de dados e implantar um banco de dados em um servidor;
3 usar uma linguagem de manipulação de dados para inserção, consultas e atualização do banco de dados;
Página:10
Objetivos EspecíficosPara capacitar o aluno a:
1 interagir com um SGBD instalado em um servidor, aplicando os conceitos de arquitetura de SGBD;
2 projetar um esquema de banco de dados e implantar um banco de dados em um servidor;
3 usar uma linguagem de manipulação de dados para inserção, consultas e atualização do banco de dados;
4 implementar visões lógicas do banco de dados;
Página:11
Objetivos EspecíficosPara capacitar o aluno a:
1 interagir com um SGBD instalado em um servidor, aplicando os conceitos de arquitetura de SGBD;
2 projetar um esquema de banco de dados e implantar um banco de dados em um servidor;
3 usar uma linguagem de manipulação de dados para inserção, consultas e atualização do banco de dados;
4 implementar visões lógicas do banco de dados;
5 usar uma linguagem de manipulação de dados embutida em uma linguagens de desenvolvimento de aplicações;
Página:12
Objetivos EspecíficosPara capacitar o aluno a:
1 interagir com um SGBD instalado em um servidor, aplicando os conceitos de arquitetura de SGBD;
2 projetar um esquema de banco de dados e implantar um banco de dados em um servidor;
3 usar uma linguagem de manipulação de dados para inserção, consultas e atualização do banco de dados;
4 implementar visões lógicas do banco de dados;
5 usar uma linguagem de manipulação de dados embutida em uma linguagens de desenvolvimento de aplicações;
6 usar uma linguagem procedural que executa no servidor por meio de funções;
Página:13
Objetivos EspecíficosPara capacitar o aluno a:
1 interagir com um SGBD instalado em um servidor, aplicando os conceitos de arquitetura de SGBD;
2 projetar um esquema de banco de dados e implantar um banco de dados em um servidor;
3 usar uma linguagem de manipulação de dados para inserção, consultas e atualização do banco de dados;
4 implementar visões lógicas do banco de dados;
5 usar uma linguagem de manipulação de dados embutida em uma linguagens de desenvolvimento de aplicações;
6 usar uma linguagem procedural que executa no servidor por meio de funções;
7 usar uma linguagem procedural no servidor para implementar regras ativas (gatilhos);
Página:14
Objetivos EspecíficosPara capacitar o aluno a:
1 interagir com um SGBD instalado em um servidor, aplicando os conceitos de arquitetura de SGBD;
2 projetar um esquema de banco de dados e implantar um banco de dados em um servidor;
3 usar uma linguagem de manipulação de dados para inserção, consultas e atualização do banco de dados;
4 implementar visões lógicas do banco de dados;
5 usar uma linguagem de manipulação de dados embutida em uma linguagens de desenvolvimento de aplicações;
6 usar uma linguagem procedural que executa no servidor por meio de funções;
7 usar uma linguagem procedural no servidor para implementar regras ativas (gatilhos);
8 implementar controles de segurança e acesso aos dados do banco de dados; e
Página:15
Objetivos EspecíficosPara capacitar o aluno a:
1 interagir com um SGBD instalado em um servidor, aplicando os conceitos de arquitetura de SGBD;
2 projetar um esquema de banco de dados e implantar um banco de dados em um servidor;
3 usar uma linguagem de manipulação de dados para inserção, consultas e atualização do banco de dados;
4 implementar visões lógicas do banco de dados;
5 usar uma linguagem de manipulação de dados embutida em uma linguagens de desenvolvimento de aplicações;
6 usar uma linguagem procedural que executa no servidor por meio de funções;
7 usar uma linguagem procedural no servidor para implementar regras ativas (gatilhos);
8 implementar controles de segurança e acesso aos dados do banco de dados; e
9 implementar objetos complexos armazenados em um SGBD e a definir estratégias e recursos necessários para implementação de banco de dados distribuídos.
Página:16
Ementa
Arquitetura de um Sistema de Banco de Dados. Modelo Conceitual de Entidades e Relacionamentos. Modelo Relacional. Linguagem de Definição de Dados. Linguagens de Manipulação de Dados. Projeto de Banco de Dados: dependência funcional, chaves, normalização, visões. Transações, controle de concorrência e recuperação de falhas. Implementação de Aplicações usando Sistemas de Gerenciamento de Banco de Dados: definição e manipulação de dados; linguagem procedural no servidor de banco de dados, linguagem SQL embutida em linguagens de programação. Comunicação entre aplicação ("front-end") e o SGBD. Introdução a Modelo de Dados Orientado a Objetos. Introdução a Banco de Dados Distribuídos.
Página:17
Programa Teórico – Visão Panorâmica
I) Sistemas de BD, Modelos de Dados e Projeto de BD;
Página:18
Programa Teórico – Visão Panorâmica
I) Sistemas de BD, Modelos de Dados e Projeto de BD;
II) Manipulação de Dados;
Página:19
Programa Teórico – Visão Panorâmica
I) Sistemas de BD, Modelos de Dados e Projeto de BD;
II) Manipulação de Dados;
III) Linguagem Procedural no Servidor, Transações e
Controle de Concorrência; e
Página:20
Programa Teórico – Visão Panorâmica
I) Sistemas de BD, Modelos de Dados e Projeto de BD;
II) Manipulação de Dados;
III) Linguagem Procedural no Servidor, Transações e
Controle de Concorrência; e
IV) Tópicos em BD.
Página:21
Programa Prático – Visão Panorâmica
V) Projeto e implementação de Sistemas de Banco de Dados.
Página:22
Ia) Introdução a Sistemas de BD
Conceitos em SBD:
Modelos, esquemas e instâncias;
Página:23
Ia) Introdução a Sistemas de BD
Conceitos em SBD:
Modelos, esquemas e instâncias; Níveis de abstração;
Página:24
Ia) Introdução a Sistemas de BD
Conceitos em SBD:
Modelos, esquemas e instâncias; Níveis de abstração; Linguagens deDescrição de Dados (DDL);
Página:25
Ia) Introdução a Sistemas de BD
Conceitos em SBD:
Modelos, esquemas e instâncias; Níveis de abstração; Linguagem de Descrição de Dados (DDL); Linguagem de Manipulação de Dados (DML); e
Página:26
Ia) Introdução a Sistemas de BD
Conceitos em SBD:
Modelos, esquemas e instâncias; Níveis de abstração; Linguagem de Descrição de Dados (DDL); Linguagem de Manipulação de Dados (DML); e Arquitetura de um SBD.
Página:27
Ib) Modelagem
• Modelo Conceitual: Modelo de Entidade e Relacionamento (ER) e ER estendido (EER);
Página:28
Ib) Modelagem
• Modelo Conceitual: Modelo de Entidade e Relacionamento (ER) e ER estendido (EER);
• Modelo Lógico: Modelo Relacional; e
Página:29
Ib) Modelagem
• Modelo Conceitual: Modelo de Entidade e Relacionamento (ER) e ER estendido (EER);
• Modelo Lógico: Modelo Relacional; e• Mapeamento ER, EER para Modelo Relacional;
Página:30
Ic) Projeto de BD
• Teoria de Dependências e Formas Normais;
Página:31
Ic) Projeto de BD
• Teoria de Dependências e Formas Normais;• Projeto Físico;
Página:32
Ic) Projeto de BD
• Teoria de Dependências e Formas Normais;• Projeto Físico;• Linguagem de Descrição de Dados – SQL/DDL – Parte 1• (Comandos de criação, alteração e remoção de tabelas); e
Página:33
Ic) Projeto de BD
• Teoria de Dependências e Formas Normais;• Projeto Físico;• Linguagem de Descrição de Dados – SQL/DDL – Parte 1;• (Comandos de criação, alteração e remoção de tabelas); e• (Algoritmos de projeto de BD)
Página:34
IIa) SQL
Linguagem de Manipulação de Dados – SQL/DML:– Comandos de inserção de tuplas em tabelas;– Comandos de alteração e remoção de tuplas; e– Comandos de consulta (simples, aninhadas junção,
agregação e consultas recursivas).; e
Página:35
IIa) SQL
Linguagem de Manipulação de Dados - SQL/DML– Comandos de inserção de tuplas em tabelas;– Comandos de alteração e remoção de tuplas; e– Comandos de consulta (simples, aninhadas,
junção, agregação e consultas recursivas).e;
Linguagem SQL/DDL – Parte 2– Definição de visões;– Especificação de restrições em bancos de dados; e– Evolução de esquemas de banco de dados.
Página:36
IIb) Manipulação de Dados no Modelo R
• Álgebra Relacional; e
Página:37
IIb) Manipulação de Dados no Modelo R
• Álgebra Relacional; e
• (Cálculo Relacional).
Página:38
IIIa) Linguagem procedural no servidor
Funções em PL/pgSQL; e
Página:39
IIIa) Linguagem procedural no servidor
Funções em PL/pgSQL; e
Gatilhos em PL/pgSQL.
Página:40
IIIb) Transações e Controle de Concorrência
Conceito de transação/ propriedade ACID;
Página:41
IIIb) Transações e Controle de Concorrência
Conceito de transação/ propriedade ACID; Controle de concorrência: conceito; bloqueio e deadlock;
escalonamentos; serialização; e protocolos; e
Página:42
IIIb) Transações e Controle de Concorrência
Conceito de transação/ propriedade ACID; Controle de concorrência: conceito; bloqueio e deadlock;
escalonamentos; serialização; e protocolos; e Processo de recuperação de falhas.
Página:43
IIIc) Tópicos em BD
(Banco de dados de objeto e objeto-relacional)
(Banco de dados distribuído)
Página:44
V) Programa Prático
Modelagem de Dados e implementação em um SGBD Especificação de uma aplicação a ser implementada por
intermédio de um SGBD;
Página:45
V) Programa Prático
Modelagem de Dados e implementação em um SGBD Especificação de uma aplicação a ser implementada por
intermédio de um SGBD; Projeto conceitual (Modelo ER e EER);
Página:46
V) Programa Prático
Modelagem de Dados e implementação em um SGBD Especificação de uma aplicação a ser implementada por
intermédio de um SGBD; Projeto conceitual (Modelo ER e EER); Projeto lógico (MR);
Página:47
V) Programa Prático
Modelagem de Dados e implementação em um SGBD Especificação de uma aplicação a ser implementada por
intermédio de um SGBD; Projeto conceitual (Modelo ER e EER); Projeto lógico (MR); Implementação do MR usando um SGBD (PostgreSQL);
Página:48
V) Programa Prático
Modelagem de Dados e implementação em um SGBD Especificação de uma aplicação a ser implementada por
intermédio de um SGBD; Projeto conceitual (Modelo ER e EER); Projeto lógico (MR); Implementação do MR usando um SGBD (PostgreSQL); Implementação de consultas em um SGBD (PostgreSQL);
Página:49
V) Programa Prático
Modelagem de Dados e implementação em um SGBD Especificação de uma aplicação a ser implementada por
intermédio de um SGBD; Projeto conceitual (Modelo ER e EER); Projeto lógico (MR); Implementação do MR usando um SGBD (PostgreSQL); Implementação de consultas em um SGBD (PostgreSQL); Implementação de SQL embutida em linguagem hospedeira;
Página:50
V) Programa Prático
Modelagem de Dados e implementação em um SGBD Especificação de uma aplicação a ser implementada por
intermédio de um SGBD; Projeto conceitual (Modelo ER e EER); Projeto lógico (MR); Implementação do MR usando um SGBD (PostgreSQL); Implementação de consultas em um SGBD (PostgreSQL); Implementação de SQL embutida em linguagem hospedeira; Implementação de Funções e Gatilhos em um SGBD
(PostgreSQL); e
Página:51
V) Programa Prático
Modelagem de Dados e implementação em um SGBD Especificação de uma aplicação a ser implementada por
intermédio de um SGBD; Projeto conceitual (Modelo ER e EER); Projeto lógico (MR); Implementação do MR usando um SGBD (PostgreSQL); Implementação de consultas em um SGBD (PostgreSQL); Implementação de SQL embutida em linguagem hospedeira; Implementação de Funções e Gatilhos em um SGBD
(PostgreSQL); e Execução de transações, controle de concorrência e
recuperação de falhas em um SGBD.
Página:52
Metodologia
• Aulas expositivas síncronas por meio de reuniões virtuais (cerca de 50% da CH de 90h), incluindo exemplos e exercícios, sendo as implementações no PostgreSQL;
Página:53
Metodologia
• Aulas expositivas síncronas por meio de reuniões virtuais (cerca de 50% da CH de 90h), incluindo exemplos e exercícios, sendo as implementações no PostgreSQL;
• Vídeos, roteiros e listas de exercícios como atividades assíncronas; e
Página:54
Metodologia
• Aulas expositivas síncronas por meio de reuniões virtuais (cerca de 50% da CH de 90h), incluindo exemplos e exercícios, sendo as implementações no PostgreSQL;
• Vídeos, roteiros e listas de exercícios como atividades assíncronas; e
• Projeto e implementação de um protótipo de aplicação transacional, usando um SGBD e linguagem com SQL Embutida;
Página:55
Horário de Atendimento
• Horário preferencial de atendimento virtual, individual ou em grupo:
4ª-feira: 14h50 – 16h30;
OBS: solicitar agendamento, enviando e-mail ao professor até o
final do dia anterior, incluindo o assunto; e havendo impedimento no horário acima, solicitar
atendimento em outro horário, desde que acompanhado de justificativa.
Página:56
Avaliações – Notas Parciais
SEJAM:
• ne : soma de notas de exercícios e laboratórios, ne<=25
• ni : nota de implementação de trabalho semestral, n
i<=25
• np : nota parcial prática, onde
np = ne + ni , logo np<=50
• n1, n2 e n3 : notas da 1ª, 2ª e 3ª provas, n1, n2 e n3 <= 25
• nt : nota parcial teórica, onde
nt = n1 + n2 + n3 - mínimo (n1, n2, n3), logo nt<=50
Página:57
Avaliações – Nota Final
NOTA_FINAL(nt, np) RETURN INT:
IF (nt >= 25 AND np >= 25) THEN nf := nt+np; ELSE WITH tnotas(nota) AS (SELECT 59 UNION SELECT (nt + np)) SELECT MIN (nota) FROM tnotas INTO nf; END IF;
RETURN nf;
Página:58
Avaliações – Situação Final
SITUAÇÃO_FINAL(faltas ,nt ,np) RETURN TEXT:
nf ::= NOTA_FINAL(nt ,np)
IF ( faltas < 28) THEN IF (nf >= 60) THEN sf:=''Aprovado'' ; ELSE sf:=''Reprovado''; END IF; ELSE sf:=''Reprovado por Frequência''; END IF;
RETURN sf;
Página:59
Bibliografia - Livros
[EN] R. Elmasri/ S. B. Navathe: Sistemas de Banco de Dados – Fundamentos e aplicações, tradução da 6a. ed. [por] Daniel Vieira, São Paulo, Pearson Addison Wesley, 2011.
[RG] R. Ramakrishnan/ J. Gehrke: Sistema de Gerenciamento de Banco de Dados. Tradução da 3a. ed. [por] P Fernandes et. al., São Paulo, McGraw-Hill, 2008.
[SK] A. Silberschatz/ H. F. Korth/ S. Sudarshan: Sistema de Banco de Dados, tradução da 6a. ed. [por] Daniel Vieira, Rio de Janeiro, Elsevier, 2012.
Página:60
Bibliografia - Sítios conteúdo Teórico
[ER] ER Diagram Tutorial in DBMS, https://www.guru99.com/er-diagram-tutorial-dbms.html, Acesso 2020
[SQL] SQL Tutorial, https://www.w3schools.com/sql/default.asp, Acesso 2020
[RDBMS] RDBMS QUESTIONS, https://www.sanfoundry.com/1000-rdbms-questions-answers, Acesso 2020
[GBC043] Sistemas de Banco de Dados, http://www.facom.ufu.br/~ilmerio/GBC043/, Acesso 2020
Página:61
Bibliografia - Sítios conteúdo Prático
[PG] PostgreSQL global development group (Manuais), http://www.postgresql.org/docs, Acesso 2020
(A versão do servidor PostgreSQL no laboratório da FACOM é a 9.6.13 rodando sob o Linux, 64-bit, mas o acesso pode ser feito por meio de cliente em Windows ou Linux, por exemplo PgAdmin IV)
[GBC043] Sistemas de Banco de Dados, http://www.facom.ufu.br/~ilmerio/GBC043/, Acesso 2020
Página:62
FIM – Plano de Curso