Você está na página 1de 45

Universidade Federal de São Paulo

Bacharelado em Ciência da Computação

Banco de Dados

Aula 1

Profa. Daniela Leal Musa


musa@unifesp.br
Plano de Curso

Objetivo
– Introduzir os fundamentos que permitam ao
aluno adquirir o domínio básico da tecnologia
de banco de dados.

Ementa
– Conceitos básicos de banco de dados. Modelos
de dados e linguagens. Projeto de bancos de
dados. Novas tecnologias e aplicações de
banco de dados.
Programa

Introdução: Conceitos básicos: banco de dados, sistema de banco de
dados, sistema de gerência de banco de dados. Características da
abordagem de banco de dados. Modelos de dados, esquemas e instâncias.
Arquitetura de um sistema de banco de dados. Componentes de um
sistema de gerência de banco de dados.
● Modelos de Dados e Linguagens : Modelo entidade-relacionamento (ER):
conceitos básicos, restrições de integridade, notação gráfica, conceitos
adicionais. Modelo relacional: conceitos básicos, restrições de integridade,
álgebra relacional, operações de atualização. A linguagem SQL.
● Projeto de Bancos de Dados: Visão geral do processo de projeto de bancos
de dados. Projeto lógico de bancos de dados relacionais: mapeamentos
ER/relacional, definição de esquemas em SQL. Normalização.
Avaliação

Exercícios Práticos (TP): 5 pontos
Total de 10 atividades: 1 por semana
Trabalho Final (TF): 5 pontos (pode ser
realizado em dupla)
projeto e implementação de uma pequena
aplicação de banco de dados

Cumprido: TP+TF >=6


Bibliografia

Básica
Korth, H. F.; Sudarshan, S; Silberschatz, A. Sistema de Banco
de Dados. 5a ed. Editora Campus, 2006.
ebook

Heuser, C.A. Projeto de Banco de Dados. 5a ed. Série Livros


Didáticos – Instituto de Informática da UFRGS, número 4.
Editora Bookman – 6ª edição ebook

Elmasri, R.; Navathe S. B. Sistemas de Banco de Dados. 4 ed.


Editora Addison-Wesley. 2005.
Bibliografia
Complementar

Ramakrishnan, R., Gehrke, J. Database Management
Systems. 3th ed. McGraw Hill. 2003.


Date, C. J. Introdução a Sistemas de Bancos de
Dados. 8ª ed. Editora
Introdução

Banco de Dados (BD) fazem parte do nosso
dia-a-dia!
– operação bancária
– reserva de hotel
– matrícula em um curso da Universidade
– cadastro na vídeo locadora

Área de BD:
– pesquisa e desenvolvimento de tecnologias para
dar suporte eficiente ao gerenciamento de dados
de sistemas
Conceitos Básicos

Dado: fato do mundo real que está registrado e
possui um significado implícito no contexto de
um domínio de aplicação
– Exemplos: endereço, Data de nascimento

Informação: fato útil que pode ser extraído
direta ou indiretamente a partir dos dados
– Exemplos: idade
Conceitos Básicos

Banco de Dados:
– Fornece acesso seguro e eficiente a
grandes quantidades de dados
– Resolve problemas:
● Armazenamento
● Consulta eficiente

Acesso e atualização com segurança: por
múltiplos usuários
Conceitos Básicos

[Chu, 1985]
– Um banco de dados é um conjunto de
arquivos relacionados entre si.

[Date, 1975]
– Um banco de dados é uma coleção de dados
operacionais usados pelas aplicações de uma
determinada organização
Conceitos Básicos

[Elmasri & Navathe, 2000]
– Um banco de dados é uma coleção de
dados relacionados
– Entretanto, um BD possui as
seguintes propriedades implícitas:
● 1. Representa aspectos do mundo real (mini-
mundo ou universo de discurso)

2.É uma coleção de dados logicamente
coerentes com algum significado inerente

3.É projetado, construído e instanciado
(“povoado”) para uma aplicação específica
Conceitos Básicos

Qualquer aplicação precisa de dados
● Dados precisam ser armazenados, gerenciados,
consultados, recuperados

SGBD
(Sistema de Gerência de Banco de Dados)
Por quê usar BD?

Considere o contexto (“passado”) de uma
grande organização que NÃO utiliza BD

Exemplo: domínio da Universidade
– várias divisões gerenciais (com suas aplicações)
– grande volume de dados
– aplicações manipulam dados comuns
Academia Espaço Físico Pessoal
Alunos Centros Centros
Professores Departamentos Departamentos
Disciplinas Cursos Professores
Turmas Disciplinas Funcionários
Salas
Gerenciamento de Dados sem BD

Cada aplicação descreve os seus dados
– nomes e formatos próprios
– dados são particulares de cada aplicação
(isolamento)

Gerenciamento local
– procedimentos de manipulação de dados
– implementados pela própria aplicação
– implementados por softwares de gerenciamento de
arquivos
Problemas
● Redundância não-controlada
● Difícil manutenção

Falta de padronização
– dificulta integração e reutilização de programas

Formas restritas de acesso
– novas operações de manipulação de dados exigem
mudança no código da aplicação

Falta de segurança
– exemplo: falha em uma operação
Utilização de BD

Visa evitar estes problemas
Vantagens de uso

Dados armazenados em um único local
– Redundância

Dados compartilhados pelas aplicações
– Integração de aplicações; evita redefinições

Maior independência de dados
– Aplicações não gerenciam os dados

Maior flexibilidade de acesso
– Linguagens para BD
Quando não usar um BD?

Quando a aplicação é simples
– lida com poucos dados operacionais
– podem ser mantidos em um ou poucos arquivos

Quando a aplicação faz processamento pesado
mas não requer gerenciamento de dados
operacionais. Ex: algumas aplicações científicas

Quando o custo para instalação e administração
é muito alto
– equipamento, pessoal, treinamento, ..
Sistema Gerenciador de Banco
de Dados (SGBD)

Dados inter-relacionados + programas que os
acessam
SGBD

Responsável pela:
– Definição: especificação dos tipos de dados
– Construção: armazenamento dos dados
– Manipulação: consultas, atualizações e geração
de relatórios

Objetivo Central:
– Dar ao usuário (aplicação) uma visão abstrata dos
dados, escondendo detalhes de armazenamento.
Funcionalidades
● Redundância controlada
● Compartilhamento de dados
● Padronização da definição e acesso aos dados
● Controle de Segurança
● Restrições de Integridade
● Mecanismos de Tolerância a Falhas
● Controle de Acesso Concorrente

Independência de dados (lógica e física)
Usuários

Administrador de BD- (DBA – Database Administrator)
– Responsável pelos dados, SGBD e programas
relacionados
– Autorização de acesso, coordenação e
monitoração do uso

Projetista de BD (Database Designer)
– Identificação dos requisitos dos usuários
– Escolha das estruturas de armazenamento

Usuário Final: comunica-se com o BD através de
aplicativos.

Programadores: interagem via comandos de
manipulação de dados.
SGBD
● Um sistema de gerência de banco de dados
(SGBD) é um conjunto de programas que
permite criar e manter um banco de dados
● BD + SGBD = sistema de banco de dados
Classificação dos SGBD
● Quanto ao modelo de dados adotado
– De rede (DMS II)
– Hierárquico (IMS da IBM)
– Relacional (Oracle, PostreSQL,
SQLServer, MySQL)
– Orientado a objetos (ObjectStore,
Matisse,O2, Jasmine, Caché)
– Objeto-relacional (Oracle,
SQLServer, PostreSQL)
– NoSQL (MongoDB, Cassandra, CoucheDB)
Exemplo de um BD
● Mini-mundo: parte de uma universidade
● Alguns integrantes
– Alunos
– Disciplinas
– Departamentos

Alguns relacionamentos
– Disciplinas são oferecidas por Departamentos
– Alunos estão matriculados em Disciplinas
Exemplo de um BD
Classificação dos SGBD
● Quanto ao número de usuários suportados
– Mono-usuários
– Multi-usuários

Quanto à localização dos dados
– Centralizados
– Distribuídos
Conceitos e Arquitetura do SBD
1. Modelos de Dados, Esquemas e Instâncias
2. Categorias de Modelos de Dados
3.Arquitetura de Três Esquemas e Independência
de Dados
4. Linguagens e Interfaces
5. Módulos de Componentes do SGBD e Utilitários
6. Classificação dos SGBDs
Modelo de Dados, Esquema e
Instância
Modelo de Dados, Esquema e
Instância

Modelo de dados: Conjunto de conceitos
descrevem a estrutura de um BD
– Abstração de dados
– Estrutura = tipos de dados + relacionamentos
+ restrições (+operações para recuperação
e atualização)

Esquema: Descrição (textual ou gráfica) da
estrutura de um BD de acordo com um
determinado modelo de dados

Instância: Conjunto de dados armazenados em
um BD em um determinado instante de tempo
Modelo de Dados, Esquema,
Instância

Esquema do Banco de Dados Exemplo


Modelo de Dados, Esquema,
Instância

Instâncias do Banco de Dados Exemplo


Categorias de Modelos
● MODELOS CONCEITUAIS

Descrevem a estrutura de um BD de uma
forma mais próxima da percepção dos usuários

Independente de aspectos de implementação

Conceitos: entidades, atributos,
relacionamentos

Exemplos:
– Modelo entidade-relacionamento (ER)
– Modelo orientado a objetos (OO)
Categorias de Modelos
MODELOS LÓGICOS

Descrevem a estrutura de um BD da forma
como será manipulado através de SGBD

Mais dependente das estruturas físicas de
armazenamento de dados

Exemplos:
– Modelo relacional
– Modelo de rede (CODASYL)
– Modelo hierárquico
– Modelo objeto relacional
Categorias de Modelos
MODELOS FÍSICOS

Descrevem como os dados são fisicamente
armazenados

Conceitos: formatos dos registros,
ordenamento dos registros, caminhos de
acesso (eficiência)
Abstração de Dados

Mundo Real
Sistema Médico

Modelo  Independente do
Consulta
Médico Paciente
Conceitual modelo de dados
 Independente do
(modelo abstrato dos SGBD CRM nome
dados)

 Dependente do
Modelo Lógico modelo de dados Orientado a Objeto-
Relacional
(estrutura dos dados)  Independente do Objetos relacional
SGBD
Médico (CRM, Nome)

 Dependente do  Organização física dos dados


Modelo Físico modelo de dados  Estruturas de armazenamento de dados
 Dependente do SGBD  Índices de acesso
Abstração de Dados

Minimundo

Projeto Conceitual

Níveis Projeto Lógico esquema


De
Abstração
Projeto Físico instâncias
Arquitetura de um sistema de BD
● Características do enfoque de BD
– Isolamento de programas e dados
– Suporte de visões múltiplas de usuários
– Catálogo para armazenar a
descrição (esquema) do BD
● Arquitetura de três níveis
– Mantém independência de dados e programas
– Suporta múltiplas visões
Arquitetura de um sistema de BD
● Componentes
● Esquema interno
– Descreve armazenamento físico

Esquema conceitual
– Descreve entidades, tipos de
dados,relacionamentos, operações e
restrições
– Esconde detalhes de armazenamento

Esquemas externos (visões)
– descreve porções do banco para
diferentes comunidades
Arquitetura de um sistema de BD
Arquitetura de um sistema de BD-
exemplo 1
● Esquema conceitual
– Estudantes (eid: string, nome: string,
login: string, idade: integer)
– Cursos (cid: string,
cnome:string, creditos:integer)
– Matricula (eid:string, cid:string, nota:string)
● Esquema Interno (físico)
– Relações guardadas como
arquivos desordenados
– Índices na primeira colunas de estudantes
● Esquema externo (Visão):
– Info_Curso(nome, horário)
Arquitetura de um sistema de BD-
exemplo 2
Independência de dados

O uso de bancos de dados permite modificar o
ESQUEMA dos dados em um nível sem afetar
a definição do esquema em um nível mais alto.
Independência de dados
● Independência de dados lógica
– Capacidade de alterar o esquema
conceitual sem alterar esquema externo
ou aplicações Ex. Expansão ou redução
● Independência de dados física
– Capacidade de mudar o esquema interno
sem mudar o esquema conceitual (ou
externo)
– Ex. Reorganização de arquivos para
melhorar desempenho

Você também pode gostar