Escolar Documentos
Profissional Documentos
Cultura Documentos
Conceitos Básicos
Dados e Informações
Dados - São fatos, eventos, conceitos, instruções etc., antes de terem sido
organizadas em um formato inteligível e útil para o usuário;
Base de Dados
A base de dados é composta pelos arquivos físicos nos quais são armazenados os
dados e os metadados (informações sobre a organização dos dados).
São mantidos por softwares gerenciadores (SGBD) que controlam a inserção, seleção,
atualização e deleção dos dados.
Compartilhamento de dados
Os dados armazenados podem ser compartilhados pelas aplicações de um mesmo e/ou
de diferentes sistemas, sem a necessidade de voltar a incluí-los;
Modelos de Dados
Uma das principais características da abordagem banco de dados é que esta fornece
alguns níveis de abstração de dados omitindo ao usuário final detalhes de como estes
dados são armazenados. Um “modelo de dados” é um conjunto de conceitos que
podem ser utilizados para descrever a estrutura em diferentes níveis de abstração.
Conceituando, podemos enumerar que estes modelos podem ser basicamente de dois
tipos:
Baixo nível: ou modelo de dados físico, que fornece uma visão mais detalhada
do modo como os dados estão realmente armazenados no computador.
Esquemas e Instâncias
O SGBD é responsável por garantir que toda instância do banco de dados satisfaça ao
esquema do banco de dados, respeitando sua estrutura e suas restrições.
O mundo real, numa generalização extrema, para efeitos de simplificação, pode ser
visto como sendo composto por objetos relacionados. O mundo real se apresenta para
o ser humano como algo caótico, nebuloso e normalmente complexo.
Quando escrevemos algum texto, estamos representando no papel algo que está em
nossa mente, e nesse caso também estamos modelando. Quando nossa mente se
abstrai e cria novos conceitos a partir de conceitos preexistentes, estes novos
conceitos são modelos ou podem fazer parte de modelos mais complexos. Estamos
nesse caso também modelando.
Quando percebemos algum fenômeno, fato ou ideia, estamos criando em nossa mente
simplificações destes, ou seja, criamos modelos ou representações simplificadas de
minimundos ou parcelas do mundo real ou domínio do problema, uma vez que,
naquele momento, nos abstraímos de muitos detalhes julgados irrelevantes.
OBJETOS
DO
MUNDO
REAL
Figura 4. Minimundo
Modelagem
É uma atividade através da qual se cria um modelo de uma parcela do mundo real
(minimundo) ou sucessivamente um modelo a partir de outro modelo ou de ambos.
Tais atividades, para que sejam executadas, necessitam de insumos e devem gerar
produtos. Existem, no entanto, atividades que dependem de algum produto gerado
Modelos
Será explicado nos próximos itens o que se entende por modelo de dados, uma vez
que não existe uma definição aceita universalmente para tal termo. As razões são
inúmeras, dentre as quais podem ser citadas:
Nos últimos anos, dezenas de modelos de dados foram propostos, muitos dos quais
intuitivamente e sem qualquer formalização. No entanto, todos objetivaram apresentar
regras bem definidas de sintaxe e semântica, que caracterizassem de forma inequívoca
as percepções dos usuários sobre o mundo real.
Já como ferramenta de modelagem, podemos defini-lo como uma ferramenta que tem
por objetivo permitir a especificação das estruturas de dados e das operações
permitidas sobre as mesmas, ou seja, deve permitir a captura das propriedades
estruturais e comportamentais da parcela do mundo real (minimundo) a ser modelada:
Esquema
Instância
Uma instância de um esquema é uma coleção de dados que variam com o tempo, de
acordo com a estrutura de dados definida pelo esquema. Cada esquema pode ter
múltiplas instâncias, e o estado do banco de dados em um particular instante
corresponde a uma instância. A evolução do banco de dados pode ser vista como a
transição de uma instância para outra, causada por alguma operação de modificação
dos dados.
Quais serão, no entanto, essas partes ou fases que irão compor a atividade de projeto
de banco de dados?
Pode-se pensar inicialmente que ela pode ser dividida em duas fases: uma voltada
para a produção de um modelo abstrato do minimundo, totalmente independente
de qualquer Tecnologia da Informação, e outra na qual se concentrará nas
TECNOLOGIA MODELO
ABSTRATO
DA INFORMAÇÃO
ELABORAÇÃO DE
UM MODELO
PROCESSÁVEL A
PARTIR DO MODELO
ABSTRATO
MODELO
PROCESSÁVEL
ELABORAÇÃO DE UM MODELO
CLASSE DA
PROCESSÁVEL A PARTIR
MODELO
TECNOLOGIA DO MODELO ABSTRATO ABSTRATO
DA INFORMAÇÃO
TECNOLOGIA
DA INFORMAÇÃO MODELO
EFETIVA OU REAL IMPLEMENTÁVEL
MODELO
PROCESSÁVEL
REQUISITOS
DE
INFORMAÇÃO
MODELO PROJETO CONCEITUAL
ENTIDADE DE DADOS
RELACIONAMENTO
PROJETO FÍSICO
LINGUAGEM
SQL DE DADOS
Modelagem Conceitual
Tem por base a percepção do mundo real como um conjunto de objetos básicos,
chamado entidades, e do relacionamento entre eles. As entidades são descritas no
banco de dados por meio de seus atributos. Os valores de atributos que descrevem
cada entidade ocupam a maior parte dos dados armazenados na base de dados. Um
relacionamento é uma associação entre entidades.
O modelo E-R também representa certas regras que o conteúdo do banco de dados
precisa respeitar. Uma regra importante é o mapeamento das cardinalidades, as quais
expressam o número de entidades às quais a outra entidade se relaciona por meio
daquele conjunto de relacionamentos.
Toda a estrutura lógica do banco de dados pode ser expressa graficamente por meio
de diagrama E-R, cujos construtores são:
Entidades e Atributos
O objeto básico tratado pelo modelo ER é a “entidade”, que pode ser definida como
um objeto do mundo real, concreto ou abstrato, e que possui existência independente.
Cada entidade possui um conjunto particular de propriedades que a descreve,
chamado de “atributos”.
Os atributos que têm que ter valor, ou seja, que não podem ser nulos, são
chamados de obrigatórios; já os que podem ser nulos são opcionais;
Cada entidade-tipo é identificada por seu nome e pelo conjunto de atributos que define
suas propriedades.
Uma entidade-tipo pode possuir um atributo cujos valores são distintos para cada
entidade individual. Este atributo é chamado de “atributo identificador”, e seus valores
podem ser utilizados para identificar cada entidade de forma única.
Cada atributo simples de um tipo entidade está associado com um conjunto de valores
denominado “domínio”, o qual especifica o conjunto de valores que podem ser
designados para este determinado atributo para cada entidade.
Cardinalidade
Geralmente, o relacionamento-tipo sofre certas restrições que limitam as possíveis
combinações das entidades participantes. Estas restrições são derivadas de restrições
impostas pelo estado destas entidades no minimundo. Veja o exemplo da Figura 10.
Gerência
EMPREGADO DEPARTAMENTO
e1
e2
d1
e3
e4 d2
e5
d3
e6
e7
A cardinalidade pode ser: 0:1, 1:1, 1:N, 0:N. No exemplo, a cardinalidade é 1:1, pois
cada entidade empregado pode gerenciar apenas um departamento e um
departamento pode ser gerenciado por apenas um empregado.
Modelo Relacional
A instância de uma relação consiste no conjunto de valores que cada atributo, definido
no esquema, assume em um determinado instante, formando o conjunto de tuplas.
Uma relação pode ser definida como um conjunto de tuplas distintas. Isto implica que
a combinação dos valores dos atributos em uma tupla não pode se repetir na mesma
tabela. Existirá sempre um subconjunto de atributos em uma tabela que garante que
não haverá valores repetidos para as diversas tuplas da mesma, garantindo que t1[SC]
t2[SC].
Em outras palavras, uma superchave é uma chave composta, ou seja, uma chave
formada por mais de um atributo. Veja o exemplo abaixo:
Quando uma relação possui mais de uma chave (não confundir com chave composta)
— como por exemplo RG e CIC para empregados —, cada uma destas chaves é
chamada de chave candidata. Uma destas chaves deve ser escolhida como primária.
Modelagem Lógica
2. Para cada atributo composto, são inseridos apenas os componentes simples de cada
um;
E
a1 a1 a21 a22 a23
a2
3. Para cada atributo multivalorado A1, cria-se uma tabela T1, contendo o atributo
multivalorado A1, mais o atributo chave C da tabela que representa a entidade ou
relacionamento que contém A1; a chave primária de T1 será composta por A1 mais C;
se A1 for composto, então a tabela T1 deverá conter todos os atributos de A1;
a1
E A3_E
a1 a2 a1 a3
E a2
a3
(_,N)
a1 a2 a3 c1 c2 b1 b2 b3
(_,1) (_,1)
E1 R E2
a1 a2 a3 c1 c2 b1 b2 b3
(_,N) (_,1)
E1 R E2
E1
a1 a2 a3 b1 c1 c2
a1 a2 a3 c1 c2 b1 b2 b3
(_,M) (_,N)
E1 R E2
R
a1 b1 c1 c2
Linguagem SQL
O SQL foi criado por E.F. Codd, membro do laboratório de pesquisa da IBM na década
de 1970. Com o sucesso da linguagem e o surgimento de vários “dialetos” criados por
outros produtores, foi criado um padrão para a linguagem. Em 1986, a ANSI (American
National Standards Institute) foi responsável por padronizar as implementações da
linguagem e em 1987 pela ISO (International Organization for Standardization).
Tipos de Dados
Para armazenar as informações em um banco de dados, é importante conhecer os
tipos de dados existentes. Existem três grandes grupos de tipos de dados em um BD:
os do tipo caractere, os numéricos e os de data e hora. Após conhecer os tipos de
dados, é possível entender quais valores podem ser utilizados, quais tamanhos podem
ter, as operações que podem ser realizadas e como armazenar as informações de
maneira correta.
Caracteres
Numéricos
Data e Hora
Os tipos de dados data e hora podem armazenar datas e horas de diversos formatos.
Seguem os tipos mais utilizados:
DML
Linguagem de Manipulação de Dados, ou Data Manipulation Language (DML), é um
subconjunto de linguagem usada para inserir, atualizar e apagar registros.
Insert
Comando utilizado para inserir registros em uma tabela. Exemplo:
INSERT INTO nome_tabela
VALUES (valor1, valor2, valor3,...)
ou
Update
Comando utilizado para atualizar os registros de uma tabela. Exemplo:
UPDATE nome_tabela
SET campo = “novo_valor”
WHERE condição
Delete
Comando utilizado para apagar os registros de uma tabela. Exemplo:
DELETE
FROM nome_tabela
WHERE condição
DTL
Linguagem de Transação de Dados, ou Data Transaction Language (DTL), utilizada
para transações como start transaction, commit e rollback.
Start Transaction
Marca o começo de uma transação no banco de dados, que pode ser completa ou não.
Exemplo:
START TRANSACTION;
COMMIT
Envia todos os dados da transação permanentemente para o banco de dados Exemplo:
COMMIT
ROLLBACK
Desfaz todas as alterações feitas nas transações realizadas no banco de dados.
CREATE
Comando utilizado para criar uma tabela dentro da base de dados. Exemplo:
CREATE TABLE aluno
(nome VARCHAR (50),
matricula INT,
PRIMARY KEY (matricula));
DROP
Comando utilizado para apagar uma tabela dentro da base de dados. Exemplo:
DROP TABLE aluno;
DQL
Linguagem de Consulta de Dados, ou Data Query Language (DQL), o mais importante
dentre eles, pois as consultas são realizadas o tempo todo no BD, e o seu único
comando é o SELECT, que é composto de várias cláusulas e opções.
Cláusulas
As cláusulas são condições utilizadas nas consultas para determinar os dados a serem
selecionados e as regras a serem aplicadas.
From - Utilizado para definir a tabela na consulta para seleção dos registros;
Where - Utilizado para definir as condições que os registros devem ter para
serem selecionados;
Group By - Utilizado para agrupar os registros com o mesmo conteúdo;
Having - Utilizado para definir as condições que cada grupo deve ter;
Operadores Lógicos
AND (“E”): compara dois ou mais valores; caso todos sejam corretos (iguais),
devolve um valor verdadeiro;
OR (“OU”): compara dois ou mais valores; caso um deles seja correto, devolve
um valor verdadeiro;
NOT: negação; devolve o valor contrário da expressão.
Agregação
Sintaxe de SQL
Vimos que o SELECT é o comando mais utilizado no banco de dados, tanto para
consultas simples até consultas mais complexas. Então, para entendermos melhor
todas as funcionalidades e aprender como utilizar esta ferramenta no BD, veremos
agora alguns de seus principais recursos.
Exemplos:
SELECT nome_coluna1, nome_coluna2
FROM nome_tabela
Select Distinct
Em algumas tabelas do banco de dados, as informações contidas nas colunas podem
conter valores duplicados. Se for preciso listar todos os valores distintos de uma
coluna, o DISTINCT deve ser utilizado para retornar apenas os valores sem
duplicidade.
O resultado será:
Tabela 8. Departamento
Cláusula Where
A cláusula WHERE é utilizada para criar regras, nos casos em que somente os registros
que tiverem os critérios utilizados serão extraídos.
Queremos selecionar os países com P_ID igual a 2; para isso, utilizaremos a seguinte
consulta:
SELECT * FROM PAIS WHERE P_ID = 2
O resultado será:
Com relação ao campo de texto, deve ser escrito entre aspas simples (‘Brasil’); já
valores numéricos não precisam das aspas (123).
Forma correta:
SELECT * FROM PAIS WHERE PAIS = ‘Portugal’
SELECT * FROM PAIS WHERE P_ID = 3
Forma errada:
SELECT * FROM PAIS WHERE PAIS = Portugal
SELECT * FROM PAIS WHERE P_ID = ‘3’
Order By
A palavra-chave ORDER BY é utilizada para ordenar o resultado de uma consulta a
partir de uma coluna determinada. O padrão da ordenação é crescente; caso queira
ordenar de modo descendente, a palavra DESC deve ser utilizada.
O resultado será:
LIKE
O LIKE é utilizado para localizar um determinado padrão de palavra em uma coluna.
Para definir a posição da palavra de busca, o “%” deve ser usado:
Exemplo um de LIKE
Queremos selecionar apenas os nomes dos departamentos que começam com a letra
“R”; para isso, utilizaremos a seguinte consulta:
O resultado será:
O resultado será:
O resultado será:
SELECT *
FROM DEPARTAMENTO
WHERE DEPARTAMENTO NOT LIKE ‘%o%’
Exemplo:
O resultado será:
Between
O BETWEEN é utilizado para selecionar um intervalo de dois valores. Os valores podem
ser do tipo data, número ou texto.
Exemplo um de BETWEEN:
O resultado será:
O resultado será:
O resultado será:
JOIN
O JOIN é usado em consultas para buscar dados em duas ou mais tabelas, utilizando
as colunas com a mesma relação entre elas. Essa relação é feita através de uma coluna
na qual os registros são únicos para cada linha, mais conhecida como chave primária.
Dentro de um banco de dados, as tabelas podem relacionar entre si usando as chaves
primárias, assim evitando a repetição dos dados em todas as tabelas.
Abaixo mostraremos duas tabelas em que todos os exemplos dos diferentes tipos de
JOIN serão feitos.
INTEGRAÇÃO COM BANCO DE DADOS 44
Tabela 25. “CLIENTE”
A coluna “C_ID” é a chave primária da tabela “CLIENTE”, com isso não podem existir
linhas na “C_ID” com o mesmo número, pois cada número da “C_ID” identifica uma
pessoa unicamente, mesmo que o nome seja igual.
Exemplo de JOIN ou INNER JOIN na tabela “CLIENTE e tabela “PEDIDO”. Para listar
todos os clientes com algum pedido, utilizaremos a seguinte consulta:
SELECT CLIENTE.NOME, CLIENTE.ENDERECO, PEDIDO.NUMERO
FROM CLIENTE
INNER JOIN Pedido
ON CLIENTE.C_ID = PEDIDO.C_ID
Tabela 27.
O resultado será:
Tabela 28.
Tabela 29.
Exemplo de FULL JOIN na tabela “CLIENTE” e tabela “PEDIDO”. Para listar todos os
clientes e os seus pedidos, e todos os pedidos e os seus clientes, utilizaremos a
seguinte consulta:
SELECT C.NOME, C.ENDERECO, P.NUMERO
FROM CLIENTE C
FULL JOIN PEDIDO P ON C.C_ID = P.C_ID
O resultado será:
Tabela 30.
INTEGRAÇÃO COM BANCO DE DADOS 48
Referências Bibliográficas
COSTA, Rogério Luís de C. SQL: Guia Prático. Rio de Janeiro: Brasport, 2007.
XAVIER, Fabrício S. V.; PEREIRA, Leonardo Bruno R. SQL: Dos Conceitos às Consultas
Complexas. Rio de Janeiro: Ciência Moderna, 2009.