Aula 02 BD
Aula 02 BD
Aula 02 BD
Banco de Dados
Conceitos Básicos
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.
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.
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.
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).
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.
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.