Banco de dados Relacional

Começar. É Gratuito
ou inscrever-se com seu endereço de e-mail
Banco de dados Relacional por Mind Map: Banco de dados Relacional

1. Atores participantes

1.1. Administradores de banco de dados

1.1.1. É o responsável por autorizar o acesso ao banco de dados, coordenar e monitorar seu uso e adquirir recursos de software e hardware conforme a necessidade.

1.2. Projetistas de banco de dados

1.2.1. São responsáveis por identificar os dados a serem armazenados e escolher estruturas apropriadas para representar e armazenar esses dados.

1.3. Usuários finais

1.3.1. São as pessoas que têm como função acessar o banco de dados para consultas, atualizações e gerações de relatórios.

1.3.1.1. Casuais

1.3.1.2. Iniciantes ou paramétricos

1.3.1.3. Sofisticados

1.3.1.4. Isolados

1.4. Analistas de sistema

1.4.1. Determina os requisitos dos usuários finais, principalmente os comuns e paramétricos. Além de desenvolverem trasações programadas que cumpram os requisitos.

1.5. Programadores de aplicação

1.5.1. Implementam os requisitos como programas.

2. SGBD

2.1. Definição

2.1.1. Sistemas computadorizados de uso geral que permitem a definição, construção, manipulação e compartilhamento de bancos de dados entre vários usuários.

2.2. Características Dos SGBD

2.2.1. Natureza de autodescrição do sistema

2.2.1.1. O sistema deve conter uma decrição detalhada de sua estrutura. Essas informações são chamadas de **metadados**.

2.2.2. Isolamento entre programa e dados

2.2.2.1. As informações sobre as estruturas dos arquivos de dados, **metadados**, são armezanados no **catálogo** do banco de dados, seperadamente dos programas que o acessam.

2.2.3. Abstração de dados

2.2.3.1. Representação conceitual dos dados, sem detalhes de operacionais e de armazenamento.

2.2.4. Múltiplas visões de usuários

2.2.4.1. Cada visão de usuário apresenta um subconjundo do banco de dados ou **dados virtuais** e oculta o restante.

2.2.5. Compartilhamento de dados

2.2.5.1. Múltiplos usuários devem poder acessar o banco de dados ao mesmo tempo. De modo que as atualizações ocorram de maneira controlada.

2.2.5.1.1. Controle de concorrência

2.2.6. Processamento de transação multiusuário

2.2.6.1. **Transação**

2.2.6.1.1. Programa em execução ou processo que envolve um ou mais acesso ao banco de dados, podendo realizar várias operações sobre os dados. Ao final da transação, o banco de dados deve estar em um estado válido respeitando as retrições de esquema.

2.2.6.1.2. Atomicidade

2.2.6.1.3. Isolamento

2.3. Vantagens de usar SGBD's

2.3.1. Controle de redundância

2.3.2. Restrição de acesso não autorizado

2.3.3. Armazenamento persistente

2.3.4. Estruturas de armazenamento

2.3.5. Técnicas de pesquisa eficientes

2.3.6. Backup de recuperação

2.3.7. Múltiplas interfaces do usuário

2.3.8. pode representar relacionamentos complexo entre os dados

2.3.9. Restrições de integridade

3. Arquitetura de um sistema de banco de dados

3.1. Modelo de dados

3.1.1. Definição

3.1.1.1. Conjunto de conceitos que podem ser usados para descrever a estrutura de um banco de dados (tipos de dados, relações, restrições, etc). Também podem definir operações básicas para especificar atualizações e recuperações de dados armazenados.

3.1.2. Categorias

3.1.2.1. Modelos de dados de alto nível ou conceitual

3.1.2.1.1. Apresenta conceitos próximos a como os usuários finais enxergam o dados. Usam conceitos de **entidades**, **atributos** e **relacionamentos**.

3.1.2.2. Modelos de dados de baixo nível ou físico

3.1.2.2.1. Apresenta conceitos que descrevem como os dados são realmente armazenados pelo computador.

3.1.2.3. Modelos de dados representativo ou de implementação

3.1.2.3.1. Apresenta conceitos que podem ser facilmente entendido pelos usuários finais, mas não estão distantes de como os computadores organizam e armazenam os dados.

3.2. Esquemas

3.2.1. Definição

3.2.1.1. É uma descrição da estrutura do banco de dados, criada durante o projeto do banco de dados. Não espera-se que mude frequentimente.

3.2.2. Diagrama de esquema

3.2.2.1. É uma representação de um esquema. Apresenta a estrutura de cada registro, mas não instânicas reais.

3.3. Estado do banco de dados

3.3.1. Definição

3.3.1.1. São os dados armazenados no banco de dados em um determinado momento do tempo. Também chamando de conjunto atual de ocorrências ou instâncias.

3.3.2. Estado vazio

3.3.2.1. Logo após a criação do banco de dados, quando não há dados.

3.3.3. Estado inicial

3.3.3.1. Quando o banco de dados é populado com dados iniciais.

3.3.4. Estado atual

3.3.4.1. Quando não está nem em estado vazio nem em estado inicial.

3.3.5. Estado válido

3.3.5.1. O SGBD é responsável por garantir que todo novo estado do banco de dados é um estado válido.

3.4. Instância

3.4.1. Definição

3.4.1.1. Cada linha de registro de um determinado tipo de dado presente no banco de dados é uma instância deste banco de dados.

3.5. Arquitetura de três esquemas

3.5.1. Nível interno

3.5.1.1. Esquema interno

3.5.1.1.1. Descreve a estrutura de armazenamento físico do banco de dados. Usa um **modelo de dados físico**.

3.5.2. Nível conceitual

3.5.2.1. Esquema conceitual

3.5.2.1.1. Descrebe a estrutura de todo o banco de dados para uma comunidade de usuários. Usa, normalmente, um **modelo de dados representativo**. Foca em entidades, tipos de dados, relacionamentos, restrições e operações do usuário.

3.5.3. Nível externo

3.5.3.1. Esquemas externos ou visões do usuário

3.5.3.1.1. Cada esquema externo descreve uma parte do banco de dados que um grupo de usuários está interessado e oculta o restante. Usa, normalmente, um **modelo de dados representativo**.

3.6. Independêcia de dados

3.6.1. Independência lógica

3.6.1.1. É a capacidade de alterar o **esquema conceitual** sem alterar os **esquemas externos** ou os programas de aplicação. É mais difícil de ser implementada, pois exige que mudanças estruturais e de restrição não afetem os programas de aplicação.

3.6.2. Independência física

3.6.2.1. É a capaciade de alterar o **esquema interno** sem ter que alterar o **esquema conceitual** e subsequentimente os **esquemas externos**. Comumente implementado na maioria dos banco de dados.

3.7. Linguagens do SGBD

3.7.1. DDL

3.7.1.1. Linguagem de Definição de Dados. Quando o **SGBD**, não faz seperação entre o **esquema conceitual** e **esquema interno**, a DDL é usada para definir ambos, quando este faz a distinção, a DDL é usada apenas para definir o **esquema conceitual** . As descrições dos esquemas gerados são armazenadas no catálogo do banco de dados.

3.7.2. SDL

3.7.2.1. Linguagem de Definição de Armazenamento. É usada para especificar o **esquema interno**. Não existe na maioria dos SGBD's, nesses casos é usado uma combinação de funções, parâmetros e especificações para realizar seu papel.

3.7.3. VDL

3.7.3.1. Linguagem de Definição de Visão. É usada para especificar **visões do usuário** e seu mapeamento ao **esquema conceitual**. Na maioria dos SGBD's isso é um papel da **DDL**.

3.7.4. DML

3.7.4.1. Linguagem de Manipulação de Dados. Realiza a recuperação, inserção, exclusão e modificação de dados depois que os esquemas são compilados e o banco de dados é populado.

3.7.5. SQL

3.7.5.1. É uma linguagem que combina DDL, VDL e DML, amplamento usada nos SGBD's.

3.8. Interfaces de SGBD

3.8.1. Interface baseada em menu para clientes web ou de navegação

3.8.2. Aplicativo para dispositivos móveis

3.8.3. Interfaces baseadas em formulários

3.8.4. Interface gráfica com o usuário

3.8.5. Interface de linguagem natural

3.8.6. Pesquisa em banco de dados baseado em palavra chave

3.8.7. Entrada e saída de voz

3.8.8. Interfaces para usuários paramétricos

3.8.9. Interafaces para o DBA

3.9. Ambiente do sistema de banco de dados

3.9.1. Utilitários

3.9.1.1. Carga

3.9.1.1.1. É utilizado para carregar arquivos de dados existentes no banco de dados.

3.9.1.2. Backup

3.9.1.2.1. Cria cópias de segunrança do banco de dados.

3.9.1.3. Reorganização do armazenamento do banco de dados

3.9.1.3.1. Reorganiza um conjunto de arquivos do banco de dados e cria novos caminhos de acesso para melhorar o desempenho.

3.9.1.4. Monitoração de desempenho

3.9.1.4.1. Monitora o uso do banco de dados e apresenta estatíticas ao DBA.

3.9.2. Ferramentas

3.9.2.1. CASE

3.9.2.1.1. Usada na fase do projeto do sistema de banco de dados.

3.9.2.2. sistema de dicionário de dados (ou de repositório de dados) expandido

3.9.2.2.1. Armazena informações do catálogo, padrões de uso, decisões do projeto e informações do usuário.

3.9.3. Ambiente de aplicação

3.9.3.1. PowerBuilder (Sybase)

3.9.3.2. JBuilder (Borland)

3.9.4. Facilidade de comunicação

3.9.4.1. Software de comunicação

3.9.4.1.1. Permite que usuários de lugares remotos possam acessar o banco de dados.

3.9.4.1.2. Software de comunicação + SGBD

3.10. Arquiteturas centralizadas

3.10.1. Todo o processamento ocorre remotamente em um computador central, e somente informações de exibição e controle são mandados para os computadores que requisitaram. Isso era efetivo pois os computadores dos usuários não possuiam poder de processamento.

3.11. Arquitetura cliente/servidor

3.11.1. Definição

3.11.1.1. É definido servidores especializado com funcionalidades específicas. Estes servisos podem ser acessados por muitas máquinas clientes. Tais máquinas clientes oferencem interfaces para o usuário e poder de processamento local para executar aplicações locais.

3.11.2. De duas camadas para SGBD

3.11.2.1. Os componentes de software são divididos entre dois sistemas:cliente e servidor.

3.11.3. De três camadas para web

3.11.3.1. Acrecenta uma camada intermediária chamada de servidor de aplicação ou servidor Web. Faz a execução de programs de aplicação e armazenamento de regras de negócio. Também age como um camada de segurança, processamento de solicitações e canal de passagem para a resposta.

3.11.4. De n camadas para web

3.11.4.1. Quando dividi-se as camadas entre o usuário e os dados em componentes mais detalhados. No geral possui de quatro a cinco camadas.

3.12. Classificação dos sistemas de gerenciamento de banco de dados

3.12.1. Por modelo de dados

3.12.1.1. Modelo da dados relacional

3.12.1.2. Modelo de dados de objeto

3.12.1.3. Modelo de dados hieráquico

3.12.1.4. Modelo de dados de rede

3.12.2. Pelo número de usuários suportado

3.12.2.1. Monousuário

3.12.2.2. Multiusuário

3.12.3. Pelo número de locais sobre os quais o banco de dados está distribuído

3.12.3.1. Centralizado

3.12.3.2. Distribuído

3.12.3.2.1. Homogêneos

3.12.3.2.2. Heterogêneos

3.12.4. Pelo custo

4. Definição

4.1. Um conjunto logicamente coerente de dados que representam um minimundo ou universo de discurso. Posuem uma finalidade específica e um grupo de interesse.

5. Modelo de dados relacional

5.1. Domínio

5.1.1. Definição

5.1.1.1. É um conjunto de valores atômicos, ou seja, indivisíveis. Dar um nome a um domínio é recomendado. Além de um tipo de dado e formato.

5.1.2. Exemplos

5.1.2.1. *Medias_nota*. Possíveis valores para calcular a média das notas; cada um deve ser um número real (ponto flutuante) entre 0 e 4.

5.1.2.2. *Codigos_departamento_academico* . O conjunto de códigos de departamentos acadêmicos, como ‘CC’, ‘ECON’ e ‘FIS’.

5.2. Atributos

5.2.1. Definição

5.2.1.1. Um atributo é um nome de um conjunto valores definido por um domínio.

5.2.2. Chave primária

5.2.2.1. É um atributo único para cada tupla presente na relação.

5.2.3. Chave estrangeira

5.2.3.1. É uma chave de outra relação presente na tupla para indicar que esta faz referência a objetos de outra relação.

5.3. Tuplas

5.3.1. Definição

5.3.1.1. Cada linha da relação é chamada de tupla, e corresponde a uma **instância** armazenada no banco de dados.

5.4. Relações

5.4.1. Esquema relacional

5.4.1.1. É composto por um nome de relação e uma lista de atributos. É usado para descrever uma relação

5.4.1.2. Aridade ou grau da relação

5.4.1.2.1. É dada pelo númro de atributos presente no esquema relacional.

5.4.1.3. Exemplo

5.4.1.3.1. ALUNO(Nome, Cpf, Telefone_residencial, Endereco, Telefone_comercial, Idade, Media)

5.4.2. Estado de relação atual

5.4.2.1. Dado pelo conjunto de tuplas válidas que representam um estado do mundo real. A medida que o estado do mundo real muda o estado de relação também muda.

5.4.3. Características das relações

5.4.3.1. Ordenação de tuplas

5.4.3.1.1. A ordenação das tuplas de uma relação não faz parte da definição da relação. Assim, não existe preferência para ordenação de qualquer relação.

5.4.3.2. Ordem dos valores um uma tupla

5.4.3.2.1. De acordo com a definição de tupla, a ordem de seus valore é importante. Mas, em nível mais abstrato, não.

5.4.3.3. Valores NULLs nas tuplas

5.4.3.3.1. O valor NULL é dado a um atributo para representar que o valor deste é desconhecido ou não se aplica aquela tupla.

5.4.3.4. Interpretação de uma relação

5.4.3.4.1. O esquema de uma relação pode ser interpretada como uma declaração ou afirmação. E cada tupla é um fato em particular da afimação.

5.5. Restrições

5.5.1. Categorias

5.5.1.1. Restrições inerentes baseadas no modelo ou restrições implícitas

5.5.1.1.1. São retrições inerentes ao modelo de dados usuado. Por exemplo a retrição de que uma relação não pode ter tuplas duplicadas.

5.5.1.2. Restrições baseadas em esquema ou retrições explícitas

5.5.1.2.1. Restrições de domínio

5.5.1.2.2. Restrições de chave

5.5.1.2.3. Restrições sobre NULLs

5.5.1.2.4. Restrições de integridade de entidade

5.5.1.2.5. Restrições de integridade referencial

5.5.1.3. Retrições baseadas na aplicação ou restrições semânticas ou regras de negócios

5.5.1.3.1. Não podem ser expressas diretamente nos esquemas do modelo de dados. São expressas e impostas pelos programas de aplicação. Mecanismos como triggers e assertions podem ser usado no lado do banco de dados para definir essas retrições.

5.6. Oprações sobre os dados

5.6.1. Essas oprações devem seguir as retrições de integridade especificadas no esquema do banco de dados, caso não são rejeitadas.

5.6.2. Recuperação

5.6.3. Atualização

5.6.3.1. Inserir

5.6.3.1.1. Insert: é usado para adicionar uma ou mais tuplas na relação. Esta pode violar qualquer uma das restrições de esquema.

5.6.3.2. Excluir

5.6.3.2.1. Delete: é usado para retirar tuplas da relação. Pode violar apenas a retrição de integridade referencial.

5.6.3.3. Alterar

5.6.3.3.1. Update: é usado para modificar valores de atributos de tupla já existentes. Também pode violar qualquer uma das retrições de esquema.

6. Modelo Entidade-Relacionamento

6.1. Clássico

6.1.1. Entidade

6.1.1.1. tipo de entidade

6.1.1.1.1. Define um conjunto/coleção de entidades que compartilham dos mesmos atributos. Cada tipo é descrito por um nome e por seus atributos.

6.1.1.1.2. Fraca

6.1.1.1.3. Forte

6.1.1.2. conjunto de entidades

6.1.1.2.1. Ou coleção de entidades é dado pelo conjunto de entidades de um certo tipo, em qualquer ponto do tempo.

6.1.1.3. Definição

6.1.1.3.1. É um objeto do mundo real com uma existêcia independente. Sua existência pode ser física ou conceitual. Cada entidade possui atributos (suas características).

6.1.2. Atributo

6.1.2.1. Valores NULL

6.1.2.1.1. Quando uma entidade não tem um valor para um atributo ou não se aplica para aquele caso esse vazio é representado por NULL.

6.1.2.2. Classificações

6.1.2.2.1. 1

6.1.2.2.2. 2

6.1.2.2.3. 3

6.1.2.2.4. 4

6.1.2.2.5. 5

6.1.2.3. Conjunto/domínio de valores dos atributos

6.1.2.3.1. Todo atributo simples de um tipo de entidade é associado a um conjunto de valores (domínio), que especifica os valores válidos para aquele atributo.

6.1.3. Relacionamento

6.1.3.1. Tipo de relacionamento

6.1.3.1.1. Define um conjunto de relacionamentos entre as entidades desse tipo de entidade. é descrita por um nome e seus atributos.

6.1.3.2. Conjunto de relacionamento

6.1.3.2.1. É conjunto das intâncias de relacionamento.

6.1.3.3. Grau de relacionamento

6.1.3.3.1. O grau de um tipo de relacionamento é o número de entidades participantes.

6.1.3.4. Nomes de papéis

6.1.3.4.1. Cada tipo de entidade que participa de um tipo de relacionamento desenpenha nele um papel. O nome de papel ajuda a identificar o que uma entidade perticipante desenpenha em cada instância de relacionamento.

6.1.3.5. Relacionamentos recursivos

6.1.3.5.1. É quando uma endidade participa mais de uma vez em um tipo de relacionamento, mas, desempenha papeis diferentes nestas relações. Nesses casos, o nome de papel é essencial para decifrar o que aquela entidade está desempenhando.

6.1.3.6. Razões de cardinalidade

6.1.3.6.1. Relacionamento binário

6.1.3.7. Restrições de participação

6.1.3.7.1. Define se a existência de uma entidade depende dela estar relacionada a outras atravez de um tipo de relacionamento.

6.1.3.7.2. Participação total

6.1.3.7.3. Participação parcial

6.2. Estendido

6.2.1. Subclasses

6.2.1.1. São tipos de entidades gerados pela especificação de um tipo de entidade mais geral. Isso se dá pela passagem dos atributos da classe mais geral para a mais específica.

6.2.2. Superclasse

6.2.2.1. É o tipo de entidade mais geral que gera as subclasses.

6.2.3. Herança

6.2.3.1. Herança de tipo

6.2.3.1.1. Como um membro da superclasse as subclasses herdam os tipos da superclasse (lista de atributos) e os tipos de relacionamento que a superclasse participa.

6.2.3.2. Herança múltilpla

6.2.3.2.1. É quando uma subclasse herda diretamente os atriutos e relacionamentos de mais de uma superclasse.

6.2.3.3. Herança simples

6.2.3.3.1. É quando uma subclasse herda diretamento os atributos e relacionamentos de apenas uma superclasse.

6.2.4. Especialização

6.2.4.1. É o processo de se definir o conjunto das subclasses de um tipo de entidade.

6.2.4.2. Subclasses definidadas por predicado

6.2.4.2.1. O tipo de especialização de uma entidade é definida pelo valor um de seus atributos.

6.2.4.3. Subclasses definidas pelo usuário

6.2.4.3.1. Quando não há informações sobre qual especialização aquele objeto pertence o usuário do banco de dados decide.

6.2.4.4. Restrições

6.2.4.4.1. Restrição de disjunção (desconexão)

6.2.4.4.2. Restrição de sobreposição (overlapping)

6.2.4.4.3. Restrição de completude (ou totalidade)

6.2.4.5. Hierarquia de especialização

6.2.4.5.1. Tem a restrição de que cada subclasse participa como subclasse me apenas um relacionamento classe/subclasse, cada subclasse tem apenas um pai. Isso gera uma estrutura de árvore ou hierarquia estrita.

6.2.4.6. Reticulado de especialização

6.2.4.6.1. Uma subclasse pode ser subclasse em mais de um relacionamento classe/subclasse.

6.2.5. Generalização

6.2.5.1. É o processo reverso da especificação, onde definimos uma superclasse a partir de atributos em comun entre alguns tipos de entidades, suprimindo suas diferenças.

6.2.5.1.1. Os conceitos de especialização também se aplicam a generalização, mas de forma inversa.

6.2.6. UNIAO

6.2.6.1. É usado para representar uma coleção de entidades a partir de diferentes tipos de entidades. Ilustrada com a letra "U".

6.2.6.2. Categoria ou tipo de união

6.2.6.2.1. É a subclasse usada para representar o conjunto de entidades escolhidas.

6.2.6.2.2. Tipos

6.2.6.2.3. Uma categoria possui duas ou mais superclasses que podem representar tipos de entidade distintos.

6.2.6.3. Herança

6.2.6.3.1. Neste caso a herança é mais seletiva, a subclasse herda os atributos da superclasse dependendo de qual superclasse esta pertence.