MD1 Apostila 2023
MD1 Apostila 2023
2023
1
AULA 1
Banco de Dados
Dado
Dados são todos os elementos que servem de base para a formação de opiniões ou para a tomada de
decisões. Um dado é apenas um índice, um registro, uma manifestação objetiva, passível de análise,
exigindo interpretação da pessoa para sua manipulação.
Informação
Um conjunto de fatos organizados de tal forma que adquirem valor adicional além do valor do fato
em si.
É uma coleção de dados relacionados referentes a um mesmo assunto e organizados de maneira útil
com o propósito de servir de base para que o usuário recupere informações, tire conclusões e tome
decisões. Bancos de Dados começaram a ser utilizados por volta dos anos 60 e em 70.
Os Bancos de Dados, além de manterem todo um volume de dados organizado, também devem
permitir atualizações, inclusões e exclusões do volume de dados, sem nunca perder a consistência.
2
Sistema de Gerenciamento (Gerenciador) de Banco de Dados
Um SGBD é uma coleção de programas que permitem ao usuário definir, construir e manipular
Bases de Dados para as mais diversas finalidades.
REGRA 1: AUTO-CONTENÇÃO- UM SGBD NÃO CONTÉM APENAS OS DADOS EM SI, MAS ARMAZENA
COMPLETAMENTE TODA A DESCRIÇÃO DOS DADOS, SEUS RELACIONAMENTOS E FORMAS DE ACESSO.
NORMALMENTE ESTA REGRA É CHAMADA DE META-BASE DE DADOS.
CLASSIFICAÇÃO
Os sistemas gerenciadores de banco de dados podem ser classificados de diversas maneiras, como por modelo de dados, por
número de usuários, por localização, entre outros.
4
AULA 2
Sistema de Banco de Dados
O Sistema de Banco de Dados envolve quatro componentes principais: dados, hardware, software
e usuários.
Dados
Um banco de dados nada mais é do que um repositório de dados, que pode ser classificado como
integrado ou compartilhado. O banco de dados integrado visa ao controle de total eliminação da
redundância de dados geralmente encontrada em sistemas de arquivos comuns (gerenciadores de
arquivos); o compartilhado visa ao acesso de vários usuários a uma mesma parte dos dados, com
finalidades distintas.
Hardware
Software
Usuários
SGBD
É o software que trata de todo o acesso ao banco de dados. Conceitualmente, o que ocorre é o
seguinte:
Um usuário faz um pedido usando uma sublinguagem de dados (geralmente SQL);
O SGBD intercepta o pedido e o analisa;
O SGBD, por sua vez, inspeciona o esquema externo, para esse usuário;
O SGBD executa as operações necessárias sobre o banco de dados armazenado.
As funções do SGBD devem incluir o suporte a, pelo menos, todos os itens a seguir:
Definição de Dados: o SGBD deve ser capaz de aceitar definições de dados em formato
fonte e convertê-los para o formato objeto adequado.
Manipulação de Dados: O SGBD deve ser capaz de lidar com as requisições do usuário
para buscar atualizar ou excluir dados existentes no banco de dados, ou para acrescentar
novos dados ao banco de dados.
Otimização e Execução: O SGBD deve ser capaz de determinar um modo eficiente de
implementar a requisição.
Segurança e Integridade de Dados: O SGBD, ou algum subsistema chamado, pelo SGBD,
deve monitorar requisições de usuários e rejeitar toda a tentativa de violar as restrições de
segurança e integridade definidas pelo DBA.
Recuperação de Dados e Concorrência: O SGBD deve impor certos controles de
recuperação e concorrência.
Dicionário de Dados: Pode ser considerado um banco de dados isolado (mas um banco de
dados do sistema, não um banco de dados do usuário); ele contém “dados sobre os dados”.
Desempenho: O SGBD deve realizar todas as funções identificadas anteriormente de forma
tão eficiente quanto possível.
6
AULA 3
MODELOS DE BANCO DE DADOS
Um modelo de (banco de) dados é uma descrição dos tipos de informações que estão armazenadas em um banco
de dados.
Um modelo de banco de dados é uma descrição dos tipos de informações que estão armazenados
em um banco de dados.
Modelo Conceitual
Modelo Lógico
Modelo Físico
7
Projeto de Banco de Dados
a. Modelagem Conceitual
Nesta primeira fase, é construído um modelo conceitual, na forma de um diagrama
entidade-relacionamento. Este modelo independe da implementação.
b. Projeto Lógico
Objetiva transformar o modelo conceitual obtido na primeira fase em um modelo lógico.
O modelo lógico define como o banco de dados será implementado em um SGBD
específico.
c. Projeto Físico
Nesta etapa, o modelo de BD é enriquecido com detalhes que influenciam no
desempenho do BD, mas não interferem em sua funcionalidade. Alterações neste modelo
não afetam as aplicações que usam o BD.
Modelo Relacional
a. Entidades
Uma entidade é um objeto de interesse do qual podem ser colecionadas informações. Elas são
representadas por tabelas. Exemplos: tabela de clientes; tabela de pedidos de clientes.
b. Relacionamentos
As entidades podem ser relacionadas entre si pelos relacionamentos. Por exemplo: relacionamento
entre a entidade de clientes e a entidade de pedidos (<<clientes fazem pedidos>>).
c. Atributos
Atributos são as características das entidades. São representadas pelas colunas das tabelas. Por
exemplo: identificador, nome, endereço e telefone do cliente.
clientes
identificador nome endereço telefone ……...
8
Uma das colunas de uma tabela é uma primary key (chave primária). Isso indica para o gerenciador
de banco de dados que uma coluna (ou um conjunto de colunas) deve ter um valor único para
identificar a linha inteira. O gerenciador faz então o controle para que não entrem duas linhas
com o mesmo valor na coluna que é primary key.
A figura a seguir demonstra o relacionamento entre tabelas utilizando-se chaves primárias (PK) e
estrangeiras (Foreign Key).
clientes
identificador nome ………. …… ….. ……. …………..
PK NN NN NN NN
1001 João S….. …. 98022 NULL 05 Jun 1992
1002 Alberto. S….. …. 98022 206-555-1212 07 Ago 1992
1008 Wilson ……. …. 98026 NULL 03 Mar 1993
Pedidos
numero cliente produto
PK PK,FK, NN NN
1 1002 567
1 1001 566
2 1001 122
Pedidos se relacionam aos Clientes, através do campo cliente da tabela de pedidos. Esse campo é
também denominado chave estrangeira (foreign key). Isso garante o que é denominado integridade
referencial: ou seja, não pode haver inconsistência nas linhas que estão associadas nas tabelas. Por
exemplo: o gerenciador não permite que clientes que tenham pedidos sejam removidos da tabela
clientes, nem que pedidos sejam realizados por clientes inexistentes.
Cada linha de nossa relação será chamada de TUPLA e cada coluna de nossa relação será chamada
de ATRIBUTO. O conjunto de valores passíveis de serem assumidos por um atributo será intitulado
de DOMÍNIO.
O domínio consiste de um grupo de valores atômicos a partir dos quais um ou mais atributos
retiram seus valores reais. Assim sendo Rio de Janeiro, Paraná e Pará são estados válidos para o
Brasil, enquanto que Corrientes não é um estado válido (pertence a Argentina e não ao Brasil).
O esquema de uma relação, nada mais é que os campos (colunas) existentes em uma tabela. Já a
instância da relação consiste no conjunto de valores que cada atributo assume em um determinado
instante. Portanto, os dados armazenados no Banco de Dados, são formados pelas instâncias das
relações.
As relações não podem ser duplicadas (não podem existir dois estados do Pará, no conjunto de
estados brasileiros, por exemplo), a ordem de entrada de dados no Banco de Dados não deverá ter
qualquer importância para as relações, no que concerne ao seu tratamento.
Chamaremos de Chave Primária ao Atributo que definir um registro, dentre uma coleção de
registros. Chave Secundária serão chaves que possibilitarão pesquisas ou ordenações alternativas,
ou seja, diferentes da ordem criada a partir da chave primária ou da ordenação natural (física) da
tabela. Chamaremos de Chave Composta, aquela chave que contém mais de um atributo.
Chamaremos de Chave Estrangeira, aquela chave que permitir a ligação lógica entre uma tabela
(onde ela se encontra) com outra na qual ele é chave primária.
9
Exemplo:
Estado Cidade
* CodEstado (PK) * CodCidade (PK)
NomeEstado NomeCidade
CodEstado (FK)
CodCidade e CodEstado, são chaves primárias respectivamente das tabelas Cidade e Estado,
enquanto CodEstado é chave estrangeira na tabela cidade. É precisamente por este campo (atributo,
ou coluna), que será estabelecida a relação entre as tabelas Cidade-->Estado.
Obs.:
Integridade da entidade: Não se permite a nenhum atributo que participe da chave
primária de uma relação que aceite o valor nulo;
Integridade referencial: Não se permite alterar o valor da chave primária de uma relação,
sem alterar o valor da chave externa de uma tabela relacionada. Como também não se pode
inserir um registro em uma tabela relacionada, a menos que o registro se ligue ou se
conecte a um registro da tabela primária.
10
AULA 4
Abordagem Entidade-Relacionamento
Foi criada por Peter Chen e é a mais usada. Os conceitos centrais da abordagem ER são: entidades,
relacionamentos, atributos, generalização/especialização e entidade associativa.
Entidade
Definição: conjuntos de objetos (coisas) da realidade modelada sobre os quais deseja-se manter
informações no BD.
Uma entidade pode representar tantos objetos concretos (uma pessoa, um automóvel, ...) como
objetos abstratos (um departamento, um endereço, ...).
Professor Aluno
Relacionamento
Geralmente os nomes dos relacionamentos são formados por verbos ou pela composição dos nomes
das entidades que fazem parte do relacionamento em questão.
Exemplos de relacionamentos:
n 1 PESSOA
ALUNO PROFESSOR
ADP
m
CASADA
DISCIPLINA
11
TIPOS DE RELACIONAMENTOS
12
CARDINALIDADE DE RELACIONAMENTOS
1 1
COORDEADOR COORDE CURSO
NA
m
1
DISCIPLINA POSSUI PROFESSOR
n m
ALUNO DISCIPLINA
ALUDIS
13
Relacionamento Um-para-Um (1:1)
Neste grau de relacionamento, cada elemento de uma entidade relaciona-se com um e somente um
elemento de outra identidade.
Sentido de leitura
1 1
homem mulher
casado
homem
1 1 mulher
casado
Resultado: (1:1)
Um elemento da entidade 1 relaciona-se com muitos elementos da unidade 2, mas cada elemento da
entidade 2 somente pode estar relacionado a um elemento da entidade 1. Ou seja, o grau de
cardinalidade determinante sempre é o maior grau obtido da interpretação dos fatos.
Sentido de leitura
time
1 N jogadores
possui
time
1 1 jogadores
possui
Identifica-se esta cardinalidade pelo fato de que em ambos os sentidos de leitura encontramos
um grau Um-para-Muitos, o que caracteriza ser então um contexto geral de Muitos-para-Muitos.
sentido de leitura
time
M N jogadores
possui
time
N M jogadores
14
possui
Atributo
Matricula Nome
Atributo identificador é o conjunto de um ou mais atributos que servem para determinar uma
ocorrência da entidade em relação as outras ocorrências.
ALUNO
15
AULA 5
Construindo o Diagrama de Entidade-Relacionamento
Iremos aprender nesta aula como construir um Diagrama de Entidade-Relacionamento - DER. Para
construirmos um DER será necessário termos o conhecimento do problema a ser resolvido,
normalmente este problema se trata de um setor ou vários de uma empresa, ou simplesmente um
problema simples de uma quitanda do seu bairro, no qual, gostariam de transforma algo que é feito
tudo no papel ou em fichas para ser implantado em um sistema de banco de dados. Para ser
montado o DER, teremos que ter o conhecimento do problema, no qual é descrito em um mini
mundo. Esse mini mundo narra como o problema a ser tratado funciona, descrevendo todos os
processos no qual ele funciona na empresa.
Vamos criar o DER, tendo como base o mini mundo abaixo descrito:
A empresa XETER gostaria de acabar com todos os cadernos do setor de Recursos Humanos, nos
quais armazenam as informações dos funcionários e dos seus departamentos nos quais os mesmos
estão lotados. As informações guardadas no caderno dos funcionários são as seguintes: matrícula,
nome, sexo, data de nascimento e o departamento no qual está lotado. Os departamentos guardam as
seguintes informações: nome do departamento e sala.
Sabemos que os funcionários só podem estar lotado em um departamento e no departamento
poderemos ter um ou mais funcionários trabalhando nele.
De acordo com as informações obtidas pelo mini mundo acima, veremos a construção do seu DER.
Modelo Lógico
Departamento (codDepartamento, nomeDepartamento, sala)
Funcionario (matrícula, nome, sexo, nascimento, codDepartamento)
Modelo Físico
Este será implantado em um SGDB, no nosso caso no MySql.
16
A clínica ETER Saúde gostaria de informatizar o seu setor de agendamento de consultas dos seus
pacientes. Sabe-se que os dados são armazenados em fichas. A ficha dos médicos têm as seguintes
informações: crm, nome e especialidade. A ficha dos pacientes possuem as seguintes informações:
cpf, nome, telefone, endereço e nascimento. Todas os agendamento das consulas são obtidas as
seguintes informações: data da consulta, médico da consulta e nome do paciente. Os pacientes
poderão no mesmo dia se consultar com mais de um médico.
De acordo com o mini mundo acima, crie o DER.
Modelo Lógico
Medico (crm, nome, especialidade)
Paciente (cpf, nome, telefone, endereço, nascimento)
Consulta (dataConsulta, crm, cpf)
Modelo Físico
Este será implantado em um SGDB, no nosso caso no MySql.
17
Exercícios de Fixação
Solução:
18
Solução:
19
Solução:
20
Modelo Lógico
21
Solução:
Modelo Lógico
22
Solução:
Modelo Lógico
23
AULA 6
SGBD MySQL
O MySql é o banco de dados de tecnologia de Código Aberto, em outras palavras, conhecido como
Open Source. Por ser código aberto, as empresas terão o seu código fonte disponível e licenciado,
sendo o seu direito autoral para estudos, modificações e distribuição do software de graça para
todos e para qualquer finalidade. Seu desenvolvedor Oracle Corporation, lançada em 23 de maio de
1995 e sua licença é GPL (General Public License - Licença Pública Geral) e Comercial.
O MySql é o SGBD mais conhecido no mundo, por causa, dele rodar em diferentes sistemas
operacionais, tendo assim, um preferencia em grandes empresas pelo mundo.
O MySql utiliza a linguagem SQL como interface.
Modelo Cliente x Servidor
Solicitação
Resposta
Cliente Servidor
O Cliente digita os comandos SQL para a criação de um Banco de dados e envia esses comandos ao
Servidor MySql que executa os comandos criando o Banco de dados. Ao criar o Banco de dados o
Cliente poderá enviar comandos ao MySql para criar tabelas com ou sem relacionamentos, podendo
inserir, excluir, alterar e consultar essas informações. O servidor MySql irá executar esses
comandos e respondendo as solicitações feitas, apresentando o resultado ao Cliente.
MySQL Browser
É uma ferramenta gráfica para criar, executar e otimizar solicitações SQL em um ambiente gráfico.
Onde o Cliente poderá escrever os comandos SQL para serem executados pelo MySql.
Abra o MySql
No botão iniciar, procure pelo aplicativo MySql Browser. Abra-o.
24
Verifique se as opções Server Host e Username estão conforme as informações apresentadas na
imagem acima. Após verificar as informações que deverão ser fornecidas, clicar no botão OK.
25
Inserindo comandos Sql (query)
O intuito da criação desses comandos Sql não é pular etapas em um Projeto de Banco de dados, e
sim, demonstrar ao aluno o SGBD sendo trabalhado na execução dos comandos Sql. O aluno ainda
não sabe o que é Diagrama Entidade-Relacionamento (DER) e com isso, não aprendeu como criá-lo
e implementá-lo no SGBD.
Lembro ainda, que este mesmo SGBD não será mais utilizado em outras aulas, somente está sendo
demonstrado ao aluno o que é um SGBD. Somente no 2º ano é que iremos aprender como utilizar
este SGBD MySql ou outro similar.
Faremos uma pequena demonstração do SGBD MySql a seguir.
ENTIDADE: ALUNO
ATRIBUTOS : Matricula (atributo identificador), Nome, Logradouro, Numero, Bairro, Municipio,
Estado e Data de nascimento.
Dado o DER acima, crie o Banco de dados chamado bd<turma>SeuNome e a tabela Aluno.
O primeiro comando a ser executado será o de criação um banco de dados. Iremos criar um banco
de dados chamado bdturmaSeuNome, por exemplo:
- Sua turma é 1111 e o seu nome é José, então o nome será bd1111jose.
Observe que o nome jose está sem acento.
26
Digite o seguinte comando: create database bd1111jose; Clicar no botão Executar.
27
AULA 7
GENERALIZAÇÃO / ESPECIALIZAÇÃO
Além de relacionamentos e atributos, propriedades podem ser atribuídas a entidades através do
conceito de generalização/especialização. A partir deste conceito é possível atribuir propriedades
particulares a um subconjunto das ocorrências (especializadas) de uma entidade genérica. No DER,
o símbolo para representar generalização/especialização é um triângulo isósceles, conforme o
exemplo abaixo. A generalização/especialização mostrada neste exemplo expressa que a entidade
CLIENTE é dividida em dois subconjuntos, as entidades PESSOA FÍSICA e PESSOA JURÍDICA,
cada uma com propriedades próprias.
A generalização/especialização pode ser classificada em dois tipos, total ou parcial, de acordo com
a obrigatoriedade ou não de a cada ocorrência da entidade genérica corresponder uma ocorrência da
entidade especializada.
Em uma generalização/especialização, total para cada ocorrência em uma das entidades
especializadas. Esse é o caso do exemplo abaixo no qual a toda ocorrência da entidade CLIENTE
corresponde uma ocorrência em uma das duas especializações. Esse tipo de
generalização/especialização é simbolizado por um “t ”.
28
Em uma generalização/especialização parcial, nem toda ocorrência da entidade genérica possui uma
ocorrência correspondente em uma entidade especializada. Esse é o caso do exemplo abaixo, no
qual nem toda entidade FUNCIONÁRIO possui uma entidade correspondente em uma das
especializações (nem todo o funcionário é motorista ou secretária). Este tipo de
generalização/especialização é simbolizado por um “p” conforme o exemplo. Usualmente, quando
há uma especialização parcial, na entidade genérica (no exemplo, FUNCIONÁRIO) aparece um
atributo que identifica o tipo de ocorrência da entidade genérica (no exemplo, trata-se de tipo de
funcionário).
Além da classificação em total e parcial, uma generalização também pode ser classificada em
compartilhada e exclusiva.
Generalização/especialização exclusiva significa que, em uma hierarquia de
generalização/especialização, uma ocorrência de entidade genérica é especializada no máximo uma
vez, nas folhas da árvore de generalização/especialização mostrados até aqui. Exemplificando, no
exemplo anterior, uma instância (ocorrência) de FUNCIONÁRIO aparece uma vez somente nas
entidades especializadas (MOTORISTA ou SECRETÁRIA), já que um funcionário ou é motorista
ou é secretária, mas não ambas as funções ao mesmo tempo. Este tipo de
generalização/especialização é chamada de “exclusiva” pela execução mútua da aparição de uma
ocorrência de FUNCIONÁRIO nas entidades MOTORISTA ou SECRETÁRIA.
Já a generalização/especialização compartilhada indica que, em uma hierarquia pode aparecer em
várias entidades nas folhas da árvore de generalização/especialização.
No exemplo abaixo, considera-se o conjunto de pessoas vinculadas a uma universidade. Neste
caso, a especialização é compartilhada, já que a mesa pessoa pode aparecer em múltiplas
especializações. Uma pessoa pode ser professor e aluno ou funcionário e aluno ao mesmo tempo.
O fato de tratar-se de uma generalização/especialização compartilhada é indicado, no DER pela
letra “c ” junto ao triângulo representativo da generalização/especialização, sendo a
generalização/especialização exclusiva indicada pela letra “x ” junto ao triângulo.
29
As combinações de tipos de entidades e as letras usadas para identificá-las no DER estão
apresentadas na tabela abaixo.
NÍVEIS DE GENERALIZAÇÃO/ESPECIALIZAÇÃO
Uma entidade pode ser especializada em qualquer número de entidades, inclusive em uma única.
Exemplificando, se no exemplo da generalização FUNCIONÁRIO, apenas os motoristas
possuíssem propriedades particulares, haveria apenas uma entidade especializada, a de motorista.
Além disso, não há um limite no número de níveis hierárquicos da generalização/especialização
pode, por sua vez, ser entidade genérica em uma outra generalização/especialização. É admissível,
inclusive, que uma mesma entidade seja uma especialização de diversas entidades genéricas (a
chamada herança múltipla). O exemplo abaixo apresenta um DER em que aparecem múltiplos
níveis de generalização/especialização, bem como o conceito de herança múltipla.
30
Agregação
Figura 1 – Agregação
31
MATERIAL
COMPLEMENTAR
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49