Guia Completo de Sistemas Gerenciadores de Banco de Dados (SGBD)
Sistemas Gerenciadores de Banco de Dados (SGBD)
Sistema responsável por gerenciar, armazenar e controlar volumes diferenciados de dados. É constituído por um banco de dados e programas para manipular, manter e tratar os dados.
Sistemas Gerenciadores de Arquivos
Sistema responsável por gerenciar arquivos dispersos ou não na organização. Não possui um programa único para manipular, gerenciar e garantir a qualidade dos dados. Cada programador aplica as regras conforme a sua conveniência. Não garante a qualidade dos dados, nem a sua integridade, diminuindo assim a confiabilidade e segurança.
Banco de Dados
Conjunto de dados inter-relacionados com um assunto ou propósito comum.
Vantagens de um SGBD
- Segurança
- Integridade
- Confiabilidade
- Velocidade na obtenção dos dados
- Dados compactados
- Regras de controle e validação centralizadas
Abstração dos Dados
Refere-se aos níveis de complexidade nos quais encontramos os dados, podendo ser num nível simplificado conhecido como visão, um nível intermediário denominado conceitual e, por fim, o mais complexo conhecido como físico.
Instância
Como os dados estão armazenados em um determinado instante no banco de dados. É bastante volátil, pois sofre alterações constantes.
Esquema
Sofre poucas alterações, pois qualquer alteração na estrutura gera grandes transtornos. O esquema é, então, o projeto de um banco de dados implantado em um SGBD.
Níveis de Modelo
Mundo Real → Modelo Descritivo → Modelo Conceitual → Modelo Lógico → Modelo Físico
Mundo Real
É o ambiente fonte das análises e interpretações do analista de sistemas. Este ambiente é totalmente abstrato e sem nenhum formalismo, o que dificulta a implementação computacional.
Modelo Descritivo
Modelo descrito em linguagem natural sem nenhum formalismo. Este tipo de modelo consiste em um documento textual onde o analista define e delimita o escopo do problema e as informações relevantes para sua análise. Pode gerar muita ambiguidade.
Modelo Conceitual
Modelo preocupado com a semântica e as interações entre as entidades mapeadas do modelo descritivo. Demonstra de forma simplória os relacionamentos entre as entidades. É o primeiro modelo formal e é derivado do modelo descritivo. Sua principal vantagem é a visualização simples das entidades e relacionamentos e a possibilidade de validar o modelo com o cliente.
Modelo Lógico
Modelo formal derivado do modelo conceitual onde empregamos elementos que afetam o projeto, pois neste modelo devemos levar em consideração o SGBD, a performance desejada, o ambiente onde será inserido, e tudo mais que afetar o projeto. Este modelo é a imagem que será implementada no SGBD.
Modelo Físico
Modelo derivado do modelo lógico, que é o resultado da implementação do modelo em um SGBD através de linguagem SQL. Esse modelo não é facilmente visualizado, pois depende da estrutura de arquivos utilizada pelo SGBD.
Domínio
Conjunto de valores válidos para uma coluna de uma tupla.
Normalização e Formas Normais
Tem como finalidade definir o formato lógico adequado para a estrutura de dados de uma tabela de um banco de dados relacional. Seu objetivo principal é diminuir a redundância e garantir a integridade e confiabilidade das informações. Para isso, foi proposto uma série de passos para que possamos verificar, validar e ajustar a estrutura de dados. A normalização não possui finalidade restritiva, e sim organizacional.
Quando pode ocorrer?
- Durante o modelo conceitual;
- Na derivação do modelo conceitual para o lógico;
- Ou após a derivação do modelo lógico.
Benefícios:
- Estabilidade do modelo lógico;
- Flexibilidade;
- Integridade;
- Economia;
- Fidelidade ao ambiente.
1ª Forma Normal
Um modelo está na 1ª forma normal, se e somente se, estiver integrado por tabelas (tuplas). Cada linha da tabela seja única e não contenha itens repetitivos, e os atributos devem ser atômicos e não podem possuir valores nulos (hoje já não é mais exigido).
- Integrado por tabelas;
- Linhas únicas;
- Não possui itens repetitivos;
- Atributos atômicos;
- Não possui valores nulos (hoje já não é mais exigido).
Exemplo de tabela:
Numero | Serie | Nomecliente | Produtovendido | Endereço | CGC | Data | Totalnota
Esquema:
Nota fiscal (numero, serie, nomecliente, produtovendido (codigo,descricao, quantidade, valorunitario, valortotal), endereco, CGC, data, totalnota).
Esta tabela fere a norma, pois produtovendido está limitado; o correto é dividir em outra coluna.
2ª Forma Normal
Uma tabela está na 2ª forma normal, se e somente se, estiver na 1ªFN e cada uma das colunas não pertencentes à chave não for dependente parcial desta (mais de uma coluna faz parte da chave primária).
3ª Forma Normal
Uma tabela está na 3ª forma normal, se e somente se, estiver na segunda Forma Normal e não possuir nenhuma coluna dependente de um campo não chave.
SQL (Structured Query Language)
- Criada pela IBM;
- Chamada de SEQUEL;
- Foi padronizada pela ISO/ANSI em 1986;
- Suportada hoje pela maioria dos SGBDs.
DDL: Linguagem de Definição de Dados
Define as estruturas do banco de dados, criando banco de dados, tabelas, índices, relacionamentos, etc.
Exemplos:
Create: cria uma tabela a partir de um esquema. Gera entradas nos metadados do SGBD.Drop: elimina uma tabela do banco de dados, retira linhas dos metadados.Alter: altera o esquema de um elemento de um banco de dados.
Sintaxe Create:
Create table nome (
coluna1 tipo [null/not null],
...
colunaN tipo [null/not null],
primary key(coluna1, ..., colunaN),
foreign key(Coluna N) references (chave_primaria)
);
Sintaxe Drop:
Drop table nome;
Sintaxe Alter:
Alter table nome drop coluna1, ..., colunaN;
Alter table nome add coluna1 tipo, ...,
colunaN tipo;
DML (Linguagem de Manipulação de Dados)
São instruções que operam com os dados contidos no banco de dados.
- Select: Consulta os dados de uma ou mais tabelas.
Sintaxe Select:
Select colunas from tabelas where condição;
Colunas: Colunas desejadas na pesquisa.
Tabelas: Determina em quais tabelas serão efetuadas as pesquisas.
Condição: Condição para que se execute a pesquisa.
Outras Cláusulas do Select
Order by: ordena as linhas de uma consulta por uma coluna especificada;Group by: agrupa as linhas com o mesmo valor;Having: filtra as linhas agrupadas sempre após a cláusulagroup by.
Funções Agregadas
São funções pré-programadas da linguagem SQL. Pegam uma coleção de valores e retornam um valor simples.
AVG: calcula média;MIN: pega o menor;MAX: pega o maior;SUM: soma dados;COUNT: conta os valores.
- UPDATE: Permite modificar colunas de uma tabela. Deve-se sempre ter um filtro para limitar a quantidade de linhas afetadas.
Sintaxe Update:
UPDATE nomedatabela SET coluna1=valor1, colunan=valorn WHERE filtro;
- DELETE: Elimina uma ou mais linhas de uma tabela. O filtro é importante para não termos resultados insatisfatórios.
Sintaxe Delete:
DELETE FROM tabela WHERE filtro;
- INSERT: Cria uma nova linha em uma tabela, baseado no esquema da mesma.
Sintaxe Insert:
INSERT INTO tabela(coluna1, ..., colunan) values (valor1, ..., valorn);
Comandos DCL (Data Control Language)
É a linguagem de controle de dados utilizada para garantir o controle e segurança ao acessar elementos de um banco de dados, dando ou tirando privilégios.
Comandos:
- GRANT: Dá acesso a um usuário ou grupo de usuários para ver, excluir, modificar ou incluir dados em uma ou várias tabelas de um banco de dados.
Exemplo:
GRANT INSERT, UPDATE, DELETE, SELECT PESSOA TO ANALISTAS;
- REVOKE: Retira os acessos de um ou mais usuários de uma ou mais tabelas ou outro objeto de um banco de dados.
Exemplo:
REVOKE INSERT, UPDATE, DELETE, SELECT PESSOA TO ANALISTAS;