introdução a banco de dados · um conjunto de programas de acesso a esses dados. o conjunto de...

32
Introdução a Banco de Dados Prof. Msc Denival A. dos Santos

Upload: others

Post on 26-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Introdução a Banco de DadosProf. Msc Denival A. dos Santos

Page 2: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 2

Dado

Um dado sozinho, dissociado de um contexto, não expressa algo que traga qualquer certeza ou elimine dúvidas de qualquer natureza. No máximo, pode-se deduzir que seja um referencial.

Por apresentar uma estrutura, podemos fazer uma decomposição, a fim de mostrar as partes que integram um elemento de dado:

Elemento de dado = atributo (peso) + conteúdo (80)

Dados são tudo que podemos inferir ou coletar sobre uma situação específica.

Qualquer elemento de dado terá um atributo que é a parte da estrutura que identifica o dado e não muda com o passar do tempo; é ele que sugere haver um significado para o dado. Já o conteúdo do dado pode assumir valores diferentes, em diferentes momentos no tempo.

Os dados podem ser considerados características ou propriedades básicas de algo (pessoas, objetos, documentos, situações e concatenações destas coisas), cujo conteúdo deve ser unívoco.

Page 3: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 3

Informação

Os dados não são isoladamente no seu estado primitivo, mas organizados em registros, podem ser convertidos em informação por meio de algum mecanismo de estruturação ou decodificação.

Este mecanismo ou decodificação objetiva reunir alguns dados de interesse sob a ótica de uma análise, ou seja, dá sentido ao dado.

Os dados reunidos passam a apresentar um significado, de tal maneira que podem ser interpretados pelas pessoas, produzindo informação.

Exemplo:

Page 4: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 4

Informação

Para se obter a informação, processos dever ser acionados. O processo é um mecanismo que envolve desde a forma como os dados estão agregados, suas restrições, relações até procedimentos de extração destes dados.

Para se gerar informação, no mínimo, é necessário conhecer antecipadamente o contexto essencial para o qual ela servirá.

Com base neste aspecto, buscam-se os dados necessários, efetuam-se as agregações e relacionamentos, de maneira a permitir que os processos possam fornecer o significado esperado.

Page 5: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 5

Banco de Dados

Banco de dados é uma coleção de dados referentes a um assunto ou propósito específico, com o objetivo de organizar os dados de modo a tornar a vida dos usuários do negócio em questão mais prática, precisa, rápida e confiável.

A todo momento o conteúdo do banco de dados representa uma visão instantânea do estado do mundo real, onde cada mudança em um item do banco de dados reflete uma mudança ocorrida na realidade.

Page 6: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 6

SGBD – Sistema Gerenciador de Banco de Dados

SGBD - é um Sistema constituído por um conjunto de dados associados e um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado domínio (empresa, pessoas, etc.).

O principal objetivo de um SGBD é proporcionar um ambiente tanto conveniente quanto eficiente para a recuperação e armazenamento das informações do banco de dados.

Page 7: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 7

SGBD – Funcionamento

Page 8: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 8

Exemplos de SGBD’s

SQL Server (da Microsoft) PostgreSQL (código aberto) Firebird (código aberto) MySQL (código aberto, atualmente Oracle) Oracle Database (da Oracle) DB2 (da IBM) MariaDB (código aberto)

Page 9: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 9

SGBD - Popularidade

Page 10: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 10

SGBD – Principais características

Permitir o acesso concorrente às bases de dados

Permite que duas ou mais pessoas acessem uma mesma base de dados ao mesmo tempo e o sistema controla para que um acesso não interfira no outro.

Realizar o gerenciamento de transações

Consiste em um conjunto de operações que é tratado como uma unidade lógica indivisível. Isso significa que quando começa a execução de uma transação, esta deve ter executadas todas as operações dentro dela.

Permitir criar e aplicar regras de segurança às bases de dados

Um SGBD tem mecanismos para criação de regras de segurança, que vão desde a definição de login e senha para os usuários, até a permissão de acesso ao SGBD e aos dados armazenados.

Permitir criar regras que garantam a integridade da base de dados

Uma SGBD tem que possibilitar a criação de regras que garantam a integridade da base de dados.

Page 11: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 11

SGBD - Funcionalidades

Persistência – Capacidade dos dados de um BD persistirem ao longo de diferentes execuções de programas de aplicação.

Definição e manipulação de dados – Funcionalidades fornecidas pelas linguagens do SGBD.

Cópia, restauração e recuperação de dados – Backup, restore (restauração), recovery (recuperação).

Segurança – prove mecanismos de acesso para consulta ou atualização dos dados. A segurança pode ser a nível de coleção de dados, atributos ou valores.

Integridade – mecanismos que garantam a consistência dos dados. Gerenciar as restrições de integridade.

Controle de concorrência de transações – transação é uma seqüência atômica de operações.

Desempenho – mecanismos de otimização.

Page 12: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 12

SGBD - Usuários

Usuários finais

São aqueles que vão trabalhar diariamente com as aplicações desenvolvidas.

Analistas de sistemas e programadores de aplicação

São responsáveis por modelar a base de dados e implementá-la no SGBD escolhido. Também são responsáveis por desenvolver a aplicação (programa escrito em uma linguagem de programação como: Java, PHP, C++, C#, etc.) e conectar essa aplicação à base de dados do sistema.

Administrador do Banco de Dados (DBA)

São responsáveis por monitorar e gerenciar todas as bases de dados criadas no SGBD. Também é quem controla as permissões dos usuários, garante que os usuários tenham acesso aos dados, realiza backups, garante o melhor desempenho para o banco de dados, etc.

Page 13: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 13

SGBD - Usuários

Usuários do BDUsuários

FinaisAnalistas de Sistemas e

Programadores de Aplicações

Administrador do BD (ABD)

Interface com o Banco de Dados

Interface com as aplicações

Programas Aplicativos

Consulta(query)

Esquema do BD

SGBD

Armazenamento do BD

Page 14: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 14

Funções de um DBA

Definir o esquema – criar o esquema do BD escrevendo um conjunto de definições em DDL, que resultarão no dicionário de dados;

Definir a estrutura de dados e o método de acesso aos dados; Modificar o esquema e a organização física do BD; Fornecer autorização de acesso ao BD, regulando o acesso de usuários à

partes específicas do sistema; Especificar regras de integridade. 

Page 15: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 15

O que é um Sistema de Banco de Dados?

É um ambiente de Hardware e de Software composto por dados armazenados em um banco de dados(BD), pelo SGBD e os programas de aplicação.

São projetados para gerir grandes volumes de dados.

O gerenciamento de dados implica a definição das estruturas de armazenamento dos dados e a definição dos mecanismos para a manipulação desses dados.

Deve garantir a segurança desses dados, impedir tentativas de acesso não autorizadas, além de controlar o acesso concorrente.

Page 16: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 16

Ambiente de um Sistema de Banco de Dados

Page 17: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 17

Instâncias e Esquemas

Um banco de dados muda ao longo do tempo por meio de informações que nele são inseridas ou excluídas.

Segundo Silberschatz (2006), os esquemas de dados dizem respeito ao projeto geral do banco de dados e é um aspecto que raramente é modificado.

Uma instância do banco de dados diz respeito à coleção de dados armazenados em um banco de dados em um determinado momento (SILBERSCHATZ, 2006). A instância modifica toda vez que uma alteração no banco de dados é feita. O SGBD é responsável por garantir que toda instância do banco de dados satisfaça o seu esquema do banco de dados, respeitando sua estrutura e suas restrições.

Page 18: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 18

Modelo 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.

Por exemplo: no caso de uma indústria, o modelo de dados poderia informar que o banco de dados armazena informações sobre produtos e que, para cada produto, são armazenados seu código, preço e descrição.

O projeto de banco de dados tem o objetivo de transformar as necessidades de informações no negócio em um banco de dados.

O projeto ocorre em três fases: Modelagem conceitual, Modelo lógico e Modelo físico.

Page 19: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 19

Modelo conceitual

Um modelo conceitual é uma descrição do banco de dados de forma independente de implementação em um SGBD. O modelo conceitual registra que dados podem aparecer no banco de dados, mas não registra como estes dados estão armazenados a nível de SGBD.

A técnica mais difundida de modelagem conceitual é a abordagem entidade-relacionamento (ER). Nesta técnica, um modelo conceitual é usualmente representado através de um diagrama, chamado diagrama entidade-relacionamento (DER).

Page 20: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 20

Modelo lógico

Um modelo lógico é uma descrição de um banco de dados no nível de abstração visto pelo usuário do SGBD. Assim, o modelo lógico é dependente do tipo particular de SGBD que está sendo usado.

Os vários modelos que vêm sendo desenvolvidos são classificados em três diferentes grupos:

Modelo lógico com base em objetos;

Modelo lógico com base em registros;

Modelo físico de dados

Page 21: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 21

Modelo lógico

Modelo lógico com base em objetos

Os modelos lógicos com base em objetos são usados na descrição de dados no nível lógico e de visões. São caracterizados por dispor de recursos de estruturas bem mais flexíveis e por viabilizar a especificação explicita das restrições de dados.

Alguns dos modelos mais conhecidos nessa categoria são:

Modelo Entidade-Relacionamento

Modelo Orientado a objetos

Page 22: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 22

Modelo lógico – com base em objetos

Modelo Entidade-Relacionamento

É largamente usado, na prática.

Tem por base a percepção do mundo real como um conjunto de objetos básicos, chamados entidades, e os relacionamentos entre eles.

Uma entidade é um objeto do mundo real, que pode ser identificado por outros objetos.

Exemplos:

Uma pessoa é uma entidade, as contas dos clientes de um banco, etc.

As entidades são descritas no banco de dados por meio de seus atributos.

Exemplo:

Os atributos numero_conta, agencia e saldo descrevem uma conta bancária.

Page 23: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 23

Modelo lógico – com base em objetos

Modelo Entidade-Relacionamento

Um relacionamento é uma associação entre entidades.

Exemplo:

um relacionamento depositante associa um cliente a cada conta que ele possui.

Elementos do modelo ER

Retângulos: representam os conjuntos de entidades.

Elipses: representam os atributos.

Losangos: representam os relacionamentos entre os conjuntos de entidades.

Linhas: unem os atributos aos conjuntos de entidades e o conjunto de entidades aos seus relacionamentos.

Observação: Um regra importante é o mapeamento de cardinalidades, as quais expressam o número de entidades às quais a outra entidade se relaciona por meio daquele conjunto de relacionamentos.

Page 24: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 24

Modelo lógico – com base em objetos

Diagrama Entidade-Relacionamento (DER).

Cada componente é rotulado com o nome da entidade ou relacionamento que representa.

Considere uma parte do sistema bancário composta pelos clientes e suas respectivas contas.

O Modelo ER evolui naturalmente para o Modelo Relacional (Modelo lógico baseado em registros).

Page 25: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 25

Modelo lógico – com base em objetos

Modelo Orientado a Objetos

Tem por base um conjunto de objetos e fundamentado no paradigma da programação orientada a objetos (POO). Representado através da UML.

Principais definições:

Classe – uma classe é a estrutura que abstrai um conjunto de objetos com características similares. Uma classe define o comportamento (modelo) de seus objetos através de métodos e os estados possíveis destes objetos através de atributos; em outras palavras, uma classe descreve os serviços providos por seus objetos e quais informações eles podem armazenar.

Objeto – Um objeto passa a existir a partir de um “molde ou modelo”. Este “molde”, definido como classe, define os limites, seus atributos suas funções.

Atributos – POO são os elementos que definem a estrutura de uma classe. Os atributos também são conhecidos como variáveis de classe.

Métodos – determinam o comportamento dos objetos de uma classe e são análogos às funções ou procedimentos da programação estruturada.

Page 26: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 26

Modelo lógico – com base em objetos

Observação: Na prática, evolui também para o Modelo Relacional (Modelo lógico baseado em registros), através do mapeamento Objeto-Relacional.

Page 27: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 27

Modelo Lógico

Modelo Lógico baseado em Registros

São usados para descrever os dados no nível lógico e de visão. São usados tanto para especificar a estrutura lógica do banco de dados quanto para implementar uma descrição de alto nível.

Possui um nível de abstração menor que os Modelos Lógicos com Base em Objetos.

São assim denominados porque o banco de dados é estruturado por meio de registros de tamanho fixo de todos os tipos (char, int, etc).

O uso de registros fixos simplifica a implementação do banco de dados no nível físico.

Podemos referenciar três modelos de dados com base em registros, são eles:

Modelo Hierárquico;

Modelo de rede e;

Modelo relacional (mais utilizado atualmente).

Page 28: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 28

Modelo lógico – com base em registros

Modelo Hierárquico

Trabalha com os dados e relacionamentos como uma coleção de registros relacionados por ligações. As ligações entre os registros pode ser chamadas links. Neste modelo os dados estão agrupados sob a forma de árvore. Cada registro é uma coleção de atributos (campos), cada um dos quais contendo somente uma informação; uma ligação é a associação entre dois registros.

Exemplo:

Em uma dada base de dados comercial, uma encomenda (registro) é de um único cliente.

Page 29: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 29

Modelo lógico – com base em registros

Modelo de rede

O modelo de rede representa os dados por coleções de registros e os relacionamentos entre eles são representados por links. Sendo um link uma associação entre exatamente dois registros. Sua organização se assemelha a do hierárquico, porém difere no sentido de que enquanto no hierárquico, cada registro filho pode ter apenas um registro pai, no modelo de rede, um registro filho pode ter vários registros pai, permitindo criar conexões mais complexas.

Page 30: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 30

Modelo lógico – com base em registros

Modelo Relacional

No modelo relacional o banco de dados é representado como uma coleção de relações. Pode-se pensa uma tabela como uma coleção de relações, onde cada linha representa um conjunto de dados relacionados entre si. Os dados de uma linha representam fatos do mundo real.

Page 31: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 31

Modelo lógico – com base em registros

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 esta sendo usado.

Aqui são detalhados os componentes de estrutura física do banco, como tabelas, campos, tipos de valores, índices, etc.

Neste estágio estamos prontos para criar o banco de dados propriamente dito, usando o SGBD preferido.

Detalhamento de uma tabela

Exemplo de tabelas em um BD Relacional

Page 32: Introdução a Banco de Dados · um conjunto de programas de acesso a esses dados. O conjunto de dados, comumente chamado de banco de dados, contém informações sobre um determinado

Página 32

Linguagens de Acesso a um BD

Podemos dividir em duas categorias os tipos de linguagem oferecidas por um SGBD. Uma delas para expressar consultas e atualizações e outra específica para os esquemas do banco de dados. São elas:

Linguagem de definição de dados (DDL) – é um tipo de linguagem especial onde um esquema de dados é especificado por um conjunto de definições. Comandos que criam, alteram ou removem objetos.

CREATE, ALTER, DROP

Linguagem de manipulação de dados (DML) – envolve desde a recuperação de informações armazenadas no banco de dados, a inserção de novas informações, a remoção de informações do banco de dados, etc., tendo como objetivo proporcionar uma interação eficiente entre usuários e máquina viabilizando o acesso ou a manipulação dos dados de forma compatível ao modelo de dados apropriado. Comandos responsáveis pela manipulação dos dados.

INSERT, SELECT, UPDATE e DELETE.