Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Aula 02 BD

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 6

Faculdade de Ciência da Computação UNISANTA

Banco de Dados

Conceitos Básicos

SQL é uma linguagem padrão. Especificamente concebido para permitir que as


pessoas a criem bases de dados, adicionem novos dados a essas bases, manipulem os
dados, e recuperem partes selecionadas dos dados.

Como Surgiu o SQL

A linguagem SQL foi desenvolvida pela IBM no final dos anos 70, tendo sido a
linguagem adotada em seu protótipo de banco de dados relacional denominado
System R. O primeiro banco de dados comercial a utilizar a linguagem SQL foi
apresentado em 1979, pela Oracle.

No início dos anos 80, o Instituto Americano de Padronização (ANSI – American


National Standards Institute) iniciou os trabalhos de desenvolvimento de uma versão
padronizada do SQL, a qual foi publicada nos anos de 1986 e 1987. Posteriormente
outras revisões e acréscimos foram efetuados no SQL que sofreu importantes
melhorias.

Como ela é padronizada pelo ANSI, assim como acontece, por exemplo com as
linguagens C, C++ e Pascal, diversos fabricantes de bancos de dados sentiram-se
seguros em adota-la como sendo a linguagem padrão para seus bancos de dados.

Outro fator, talvez mais significativo que o anterior e que levou à adoção do
padrão SQL por diversos bancos de dados, foi o fato de que essa linguagem não é
procedural. Isso pode ser traduzido da seguinte maneira: “não importa como uma
tarefa vai ser executada pelo banco de dados; importa apenas que ela vai ser
executada”. Em breve veremos as estruturas básicas do SQL, e certamente aqueles
que nunca tiveram contato com ela irão se surpreender com as facilidades
apresentadas.

Bancos de dados, como Access, SQL Server, Oracle, DB2 e Paradox, utilizam o
SQL. Embora boa parte do SQL padrão ANSI seja utilizada por esses bancos, os
programadores encontrarão algumas variações e uma série de acréscimos ao padrão
desses bancos de dados.

Uma das grandes vantagens do SQL é que é uma linguagem universal para os
bancos de dados profissionais. Uma boa parte dessa linguagem está padronizada.
Evidentemente existem alguns acréscimos conforme o banco de dados utilizado
(MSSQL Server, Oracle, DB2, etc). Entretanto, a base é a mesma.
Faculdade de Ciência da Computação UNISANTA
Banco de Dados

Uma outra vantagem é que essas instruções são executadas pelo banco de dados e
não pelo programa. Vamos imaginar o método sem SQL. Tendo uma lista com 80.000
nomes, desejo saber se existe um cliente como o nome de João Gomes Araújo. O usual
seria verificar registro por registro, testando o nome de cada cliente cadastrado. Uma
alternativa para otimizar a performance é dividir o banco de dados conforme as letras
do alfabeto. Assim sendo, poderíamos ter uma tabela com os nomes iniciados em A,
B, C,D outra com os nomes iniciados com E,F,G e assim por diante. De qualquer forma,
o programa teria que abrir o arquivo, ler registro por registro até receber o resultado.
Então cabe uma pergunta: se ele encontrar o nome desejado, ele pára ou verifica se
existem mais clientes com o mesmo nome? E se desejarmos mandar uma mala direta
apenas para os clientes de uma determinada cidade, ou para aqueles que fazem
aniversário em um determinado dia do mês. Devemos abrir uma ou mais tabelas e ir
filtrando registro por registro.

Bom, se você não tem pressa ou se seu banco de dados é pequeno (uns 500 registros
no máximo) tudo bem.

Entretanto, pense na seguinte situação: um diretor deseja saber AGORA todos os


clientes que moram no Recife e que tenham entre 25 e 35 anos, com renda mensal
superior a R$ 1.500,00, com nível de instrução superior e que tenham comprado algum
produto nos últimos três meses.

Se você for programar isso em código, talvez eles comecem a pensar em outro
programador para ocupar seu lugar. Entretanto se você usar um banco de dados
compatível com SQL bastará montar uma consulta para obter esse resultado no ato.

Isso porque as consultas (ou queries) podem ser escritas e testadas sem a necessidade
de compilação. Você faz isso diretamente no servidor ou mesmo em uma estação.
Simples, rápido e fácil.

Linguagens de Bancos de Dados


DDL - linguagem de definição de dados
criação, eliminação e alteração

DML - linguagem de manipulação de dados


Inserção, edição e exclusão

DCL - Data Control Language


Faculdade de Ciência da Computação UNISANTA
Banco de Dados

Características Desejáveis numa database


Controle de Redundância;
Compartilhamento de Dados;
Controle de Acesso aos Dados;
Múltiplas Interfaces;
Representação de associações complexas;
Garantia de restrições de Integridade;
Recuperação de falhas

SGBD Sistema Gerenciador de Bancos de Dados: Software construído para facilitar as


atividades de definição, construção e manipulação de bancos de dados;
Exemplos: MS SQL Server, Oracle, DB2, Informix, MySql.

Classificação dos SGBDs


Modelo: Hierárquico, Rede, Relacional, OO, Objeto-Relacional
Número de usuários: Monousuário/Multiusuário
Local de armazenamento: Centralizado/Distribuído

Sistemas de arquivos X SGBD


É possível armazenar os dados usando arquivos, e construindo programas para estes
manipular os arquivos, a manipulação dos arquivos é parte da implementação.

Vantagens no uso de SGBDs:


A) Dados podem serviços compartilhados
B) Redundância pode ser controlada
C) Inconsistência dos dados pode ser evitada
D) Suporte efetivo a transações
E) Integridade pode ser mantida
F) Segurança reforçada
G) Acesso aos dados é facilitado
H) Padrões podem ser reforçados
I) Tempo de desenvolvimento de aplicações é reduzido
J) Maior flexibilidade para realizar alterações (independência de dados)
K) Maior economia, informações atualizadas, menor volume de papel

Que características distinguem um SGBD de aplicações que utilizam


processamento de arquivos?
Faculdade de Ciência da Computação UNISANTA
Banco de Dados

Catálogo
 Um SGBD mantém não apenas o BD, mas também uma definição e
descrição das estruturas e restrições (catálogo - metadados)
 A existência do catálogo permite que um mesmo SGBD possa ser
utilizado ara aplicações distintas (o catálogo indica uma estrutura física
utilizada)

Independência de Dados
 Um SGBD dá aos usuários uma visão abstrata dos dados, encobrindo
detalhes não relevantes (o usuário-desenvolvedor não precisa saber
como os dados são fisicamente armazenados).

Múltiplas Visões dos Dados


 Cada usuário pode exigir uma visão diferenciada da base de dados

Compartilhamento e Transações
 Controle de concorrência

Usuários de um SGBD

Projetistas
Identificam os dados a serem armazenados

DBA
Database Administrator – Administrador de Banco de Dados
Coordena todas as atividades do sistema de banco de dados; possui boa
compreensão dos recursos de informação da empresa e suas necessidades.
Suas funções incluem:
o Definição do esquema
o Estrutura de armazenamento e definição de acesso aos dados
o Esquema físico e organização
o Concede acesso aos usuários
o Cuida da integridade dos dados
o Atua como elo com os usuários
o Acompanha a desempenho, e responde as mudanças exigidas
o Atividades de manutenção (Backups)

Usuários
Leigos (internautas)
Especializados (programadores)

MODELOS DE DATABASES

Relacional
Hoje em dia, os novos sistemas de base de dados são quase exclusivamente do
tipo relacional.
Faculdade de Ciência da Computação UNISANTA
Banco de Dados

Hierárquico
Chamados assim porque têm uma estrutura hierárquica simples que permite
acesso rápido aos dados. Problemas com redundância e inflexibilidade
estrutural tornam suas modificações difíceis.
Rede
Possuem mínimas redundâncias, mas paga um preço alto devido sua
complexidade

MODELO RELACIONAL
Databases relacionais substituíram os modelos anteriores porque esses sistemas têm
valiosos atributos que a distinguem como superior. Provavelmente o mais importante
é você pode mudar a estrutura de dados sem alterações nas aplicações. Suponha, por
exemplo, que você adicione uma ou mais colunas numa tabela. Você não precisa
alterar nenhum aplicativo que o sistema vai continuar a processar. Claro, se você
remover uma coluna que uma aplicação existente utiliza, você vai ter problemas.

Porque relacional é melhor


Em aplicações escritas no modelo hierárquico ou rede, a estrutura de dados é
praticamente embarcada na aplicação, isto é, a aplicação depende da execução física
específica da Database, se você adicionar um novo atributo para o banco de dados,
você deve alterar a sua aplicação para acomodar essa mudança, com ou sem a
utilização do novo atributo.

Modelos relacionais oferecem flexibilidade estrutural, as aplicações escritas para esse


modelo são mais fáceis de. Essa mesma flexibilidade estrutural permite-lhe recuperar
conjuntos de dados que você pode não tinha previsto precisar antes da concepção.

Objetos de banco de dados relacional


Veremos agora uma breve descrição dos objetos que compõem um banco de
dados. Eles serão vistos com mais detalhes a medida em que aprofundaremos no
curso.

Tabelas São os objetos que contém os tipos de dados e os dados reais

Colunas São as partes das tabelas que armazenam os dados. Devem


receber um tipo de dados e ter um nome único

Tipos de dados Há vários tipos para serem utilizados como caractere, número,
data. Um único tipo de dados é atribuído a uma coluna dentro de
uma tabela

Storeds São como macros em que o código Transact-SQL pode ser escrito
Procedures e armazenado sob um nome.
(procedimentos
Faculdade de Ciência da Computação UNISANTA
Banco de Dados

armazenados)

Triggers (gatilhos) São como storeds procedures que são automaticamente ativados
quando os dados são inseridos, alterados ou apagados.
Asseguram que regras de negócio e de integridade sejam
impostas ao banco de dados.

Regras (rules) São atribuídas a colunas de modo que os dados que estão sendo
inseridos devem se adaptar aos padrões definidos. Por exemplo,
pode-se utilizar regras para permitir que um campo que irá
armazenar a UF contenha somente Estados válidos.

Chaves Primárias Embora não sejam objetos em si, as chaves são essenciais para os
(PK) bancos de dados relacionais. Promove a característica de
unicidade das linhas, proporcionando uma maneira de identificar
de forma única cada item que você queira armazenar.

Chaves Novamente, não são objetos em si, as chaves estrangeiras são


Estrangeiras (FK) colunas que fazem referências as chaves primárias de outras
tabelas.

Padrões (Defaults) Podem ser configurados em campos de modo que, se nenhum


dado for inserido durante uma operação de Insert, os valores
padrão serão utilizados.

Views Consistem basicamente em consultas armazenadas nos bancos de


(visualizações) dados que podem fazer referência a uma ou muitas tabelas. Você
pode criar e salvar views e utiliza-las no futuro. Normalmente
excluem certas colunas de uma tabela e vinculam duas ou mais
tabelas entre si. Podem ser utilizadas também como mecanismo
de segurança.

Índices Podem ajudar os dados de modo que as consultas executem mais


rápido

Você também pode gostar