INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
BAHIA
Banco de Dados
Prf. Msc. Igor de Oliveira Costa
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
Introdução
Introdução
• Banco de Dados pode ser definido como um conjunto de dados organizados com o objetivo de gerar informações relevantes a um
determinado sistema;
• Segundo Korth “é uma coleção de dados inter-relacionados, representando informações
sobre um domínio específico”;
• Ex: Lista telefônica, sistema acadêmico, sistema de RH, etc..
Introdução
Introdução
• Podemos definir como um software que possui recursos capazes de manipular as informações do banco de dados e interagir com o usuário;
• O principal objetivo de um SGBD é fornecer uma maneira de recuperar informações de banco de dados que seja tanto conveniente quanto eficiente.
Introdução
• Os sistemas de Banco de Dados são
projetados para gerenciar grandes blocos de informações.
• Através do gerenciamento de dados:
– Podemos definir estruturas para armazenamento de informações;
– E fornecer mecanismos para manipulação dessas informações;
Introdução
• Exemplos de SGDBs: – MySQL – Postgres – Oracle – SQL Server – AccessIntrodução
• Podemos definir Sistema de Banco de Dados como um conjunto de quatro componentes:
Introdução
• Aplicação de Banco de Dados
– Durante as últimas 5 décadas o uso de banco de dados cresceu muito entre as empresas, assim essa tecnologia é amplamente utilizada em:
– Bancos;
– Linhas aéreas;
– Universidade e Institutos;
– Transações de Cartões de Crédito; – Telecomunicações;
– Vendas;
– E-commerce;
Introdução
• Finalidade do Banco de Dados
– Na Década de 60 era utilizado um sistema de armazenamento de informações arcaico, o sistema de armazenamento em arquivos do sistema operacional;
– Esses sistemas apresentavam diversas desvantagens, como por exemplo:
• Redundância e inconsistência dos dados; • Dificuldade de acesso a dados;
Introdução
– Problema de Integridade; – Problemas de atomicidade;
– Anomalias de acesso concorrente; – Problemas de segurança.
• Diante desses problemas foi que os sistemas de gerenciamento de banco de dados
nasceram, com essa finalidade, resolver esses problemas.
Introdução
• Um dos objetivos do sistema de Banco de Dados é de isolar o usuário de detalhes
internos do banco (Abstração), e promover a independência dos dados em relação às
Introdução
• Abstração de Dados
– Ocultar a complexidade de implementação dos usuários, dividindo-os em três níveis de abstração:
• Nível Físico: é o nível mais baixo de abstração, em que define efetivamente de que maneira os dados estão armazenados;
• Nível Lógico: define quais os dados que estão
armazenados e qual o relacionamento entre eles; • Nível de Visão: as partes do banco de dados que o
usuário tem acesso de acordo com a necessidade individual de cada usuário ou grupo de usuários;
Introdução
• Esquemas e Instâncias
– Os bancos de dados mudam com o tempo, de acordo com que as informações são inseridas e removidas dele;
– Podemos definir como instância a coleção de informações armazenadas nele em um dado momento.
Introdução
– O esquema pode ser definido como o projeto geral do banco de dados;
– O esquema raramente, ou nunca, são modificados;
• Podemos fazer uma analogia com um programa de computador:
– A declaração de variáveis e definição da estrutura lógica seria o esquema;
– Os valores que essas variáveis irão receber
Introdução
• Um sistema de Banco de Dados fornece uma linguagem de definição de dados para
especificar o esquema de banco de dados, e uma linguagem de manipulação de dados para expressar as consultas e atualizações em um banco de dados;
Introdução
• DML(Data Manipulation Language) • Linguagem de Manipulação de dados
– Permite ao usuário acessar ou manipular dados; – O tipos de acesso são:
• Recuperação de informações em banco de dados; • Inserção de novas informações;
• Exclusão de informações; • Modificação de informações;
– Existem dois tipos:
Introdução
– DML não procedural – Requerem que um usuário especifique que dados são necessários sem
especificar como obtê-los.
• A DML é utilizada para as operações básicas em dados, que chamamos CRUD (Create,
Read, Update e Delete);
• Podemos chamar a parte da DML que trata da recuperação de informações de linguagem de
Introdução
• DDL (Data Definition Language) • Linguagem de definição de dados
– A linguagem de definição de dados é um conjunto de comandos utilizados para a definição da
estrutura de dados em um BD, fornecendo para isso instruções que permitem a criação,
modificação e remoção de objetos de um banco de dados;
Introdução
– Essas instruções definem os detalhes de
implementação dos esquemas de banco de dados, que normalmente estão ocultos para o usuário.
– Os comandos básicos da DDL são:
• CREATE: cria um objeto (uma Tabela, por exemplo) dentro da base de dados;
• DROP: apaga um objeto do banco de dados;
• ALTER: permite ao usuário alterar um objeto, por exemplo, adicionando uma coluna a uma tabela existente.
Introdução
• Os valores de dados armazenados no banco de dados precisam satisfazer certas restrições de consistência.
– Por exemplo, o limite de saldo em uma conta bancária;
• Os sistemas de banco de dados verificam essas restrições toda vez que o banco é atualizado.
Introdução
• Existe vários tipos de restrição, a saber:
– Restrição de domínio:
• Consiste em definir os tipos de valores de domínio um determinado atributo (campo) do banco deva receber • Por exemplo, um atributo varchar, inteiro, etc.
– Integridade Referencial:
• Consiste na relação entre tabelas, onde o dado de relação deve ser o mesmo nas tabelas relacionadas;
– Assertiva:
• Uma assertiva é qualquer condição que o banco de dados precisa sempre satisfazer.
Introdução
– Integridade de vazio:
Introdução
• Modelo de Dados
– O modelos de dados é uma coleção de ferramentas conceituais para descrever dados, relação de dados, semântica dos dados e restrições de consistência;
– Modelo de banco de dados é uma descrição dos tipos de informações que estão armazenadas em um banco de dados;
– Por exemplo, pode informar que o banco armazena informações sobre aluno e que, para cada aluno, são
Introdução
• Desta forma, o modelo não informa quais dados estarão armazenados, apenas defini que tipo de informação contém;
• Um modelo de dados oferece uma maneira de descrever o projeto de um banco dados no
Introdução
• Existem quatro categorias diferente de modelos de dados:
– Modelo relacional;
– Modelo de entidade/relacionamento; – Modelos de dados baseados em objeto; – Modelos de dados semiestruturados.
Introdução
• Modelo Conceitual
– É uma descrição de banco de dados de forma
independente de implementação num sistema de gerenciamento;
– Assim, registra que dados podem aparecer no banco, mas não registra como estes dados estão armazenados no SGBD.
Introdução
• Exemplo de um modelo conceitual textual: • Cadastra de Paciente:
– Dados necessário: nome, cpf, rg, data de nascimento, endereço, telefone, email;
• Cadastro de Médico:
– Dados necessário: nome, cpf, crm, espcialidade, endereço, telefone, email;
• Cadastro de Consulta:
Introdução
• Exercício:
– Descreva um modelo conceitual para a manutenção de um carro em uma oficina mecânica;
Introdução
• Modelo Lógico
• É uma descrição das estruturas que serão armazenadas no banco e que resulta numa representação gráfica dos dados de uma
maneira lógica;
• Nomeia os componentes e ações que exercem uns sobre os outros;
Introdução
Introdução
• O modelos lógico pode também ser representado da seguinte forma:
– Paciente(codigoPaciente, nome, cpf, rg, endereco);
– Medico(codigoMedico, nome, crm, especialidade, telefone);
– Consulta(codigoPaciente, codigoPaciente, procedimento, receita).
Introdução
• Modelo Físico
– É uma descrição de um banco de dados no nível de abstração visto pelo usuário do SGBD. Assim, esse modelo depende do SGBD que está sendo usado; – Aqui são detalhados os componentes da estrutura
física do banco, como tabelas, campos, tipos de valores, índices, etc;
– Nesse estágio estamos prontos para criar o banco de dados propriamente dito, usando o SGBD preferido.