• ANÁLISE E DESENVOLVIMENTO DE
SISTEMAS
• SISTEMAS DE INFORMAÇÃO
Rodrigo Kiyoshi Saito / rodrigok@anchieta.br
BANCO DE DADOS I
Tópicos abordados
• Projetando Banco de Dados
• Modelo conceitual
• Modelo lógico
• Divisão da linguagem SQL
PROJETANDO BANCO DE
DADOS
• Segundo OLIVEIRA, (2002, p.21), antes de
utilizarmos os comandos SQL, vamos
identificar a forma de planejar a criação do
banco de dados. Esse planejamento é
extremamente importante para a estabilidade
de todo o sistema. Estudos indicam que
quanto maior o tempo despendido no projeto
do banco de dados, menor será o tempo
despendido na manutenção do modelo.
PROJETANDO BANCO DE
DADOS
• OLIVEIRA (2002, p.21) explica ainda que
podemos comparar a criação de um sistema
com a construção de um edifício. O projeto de
banco de dado está para o sistema da mesma
forma que a estrutura do prédio está para o
edifício. Se não for dada a devida atenção ao
desenho do banco de dados, pode-se
comprometer todo o desenvolvimento do
sistema.
PROJETANDO BANCO DE
DADOS
• É como construir um edifício utilizando uma
base inadequada: um dia o edifício cairá. De
outra forma, quanto maior for o tempo
dedicado ao estudo das necessidades de
informação do sistema em desenvolvimento,
maior será o tempo economizado no
desenvolvimento do sistema.
PROJETANDO BANCO DE
DADOS
• O sistema terá melhor qualidade, e será mais
fácil, no futuro, implementar novas rotinas,
procedimentos e agregar novas informações
necessárias.
• O processo de análise dos dados pressupõe
três fases distintas e integradas, como
apresenta a figura a seguir
PROJETANDO BANCO DE
DADOS
• Análise e modelagem
utilizando modelo de
entidade
relacionamento e
normalização de dados.
• Desenho com definição
de tabelas, índices,
visões, etc.
Referência: Três fases segundo OLIVEIRA (2002, p. 22)
Modelo Conceitual de Dados
Desenho do Banco de Dados
Criação do Banco de Dados
Banco de dados Operacional
PROJETANDO BANCO DE
DADOS
• Segundo o autor e colunista Ricardo Rezende,
da revista especializada em desenvolvimento
da Devmedia, o sistema de banco de dados
deve garantir uma visão totalmente abstrata
do banco de dados para o usuário.
PROJETANDO BANCO DE
DADOS
• Para o usuário do banco de dados pouco
importa qual unidade de armazenamento está
sendo usada para guardar seus dados,
contanto que os mesmos estejam disponíveis
no momento necessário.
Referência:
(http://www.sqlmagazine.com.br/Colunistas/RicardoRezende/02_ConceitosBD.asp,
acessado em 12/04/2009),
PROJETANDO BANCO DE
DADOS
• Esta abstração se dá em três níveis
– Nível de visão do usuário: as partes do banco de
dados que o usuário tem acesso de acordo com a
necessidade individual de cada usuário ou grupo
de usuários;
– Nível conceitual: define quais os dados que estão
armazenados e qual o relacionamento entre eles;
– Nível físico: é o nível mais baixo de abstração, em
que define efetivamente de que maneira os dados
estão armazenados
PROJETANDO BANCO DE
DADOS
PROJETANDO BANCO DE
DADOS
• Todo bom sistema de banco de dados deve
apresentar um projeto, que visa a organização
das informações e utilização de técnicas para
que o futuro sistema obtenha boa
performance e também facilite infinitamente
as manutenções que venham a acontecer.
PROJETANDO BANCO DE
DADOS
• O projeto de banco de dados se dá em duas
fases:
– Modelagem conceitual;
– Projeto lógico.
PROJETANDO BANCO DE
DADOS
• Estas duas etapas se referem a um sistema de
banco de dados ainda não implementado, ou
seja, que ainda não exista, um novo projeto. Para
os casos em que o banco de dados já exista, mas
é um sistema legado, por exemplo, ou um
sistema muito antigo sem documentação, o
processo de projeto de banco de dados se dará
através da utilização de uma técnica chamada de
Engenharia Reversa, que será visto em outra
oportunidade.
Modelo conceitual
• É a descrição do BD de maneira independente
ao SGBD, ou seja, define quais os dados que
aparecerão no BD, mas sem se importar com a
implementação que se dará ao BD. Desta
forma, há uma abstração em nível de SGBD.
Modelo conceitual
• Uma das técnicas mais utilizadas dentre os
profissionais da área é a abordagem entidade-
relacionamento (ER), onde o modelo é
representado graficamente através do
diagrama entidade-relacionamento (DER)
Modelo conceitual
O modelo acima, entre outras coisas, nos traz informações sobre Alunos e Turmas.
Para cada Aluno, será armazenado seu número de matrícula, seu nome e endereço,
enquanto para cada turma, teremos a informação de seu código, a sala utilizada e o
período.
Modelo conceitual
Modelo lógico
• Descreve o BD no nível do SGBD, ou seja,
depende do tipo particular de SGBD que será
usado. Não podemos confundir com o
Software que será usado. O tipo de SGBD que
o modelo lógico trata é se o mesmo é
relacional, orientado a objetos, hierárquico,
etc.
Modelo lógico
• Abordaremos o SGBD relacional, por serem os
mais difundidos. Nele, os dados são
organizados em tabelas
Aluno
mat_aluno nome endereco
1 Cecília Ortiz Rezende Rua dos Ipês, 37
2 Abílio José Dias Avenida Presidente
Jânio Quadros, 357
3 enata Oliveira Franco Rua Nove de Julho, 45
Turma
cod_turma sala periodo
1 8 Manhã
2 5 Noite
Modelo lógico
• O modelo lógico do BD relacional deve definir
quais as tabelas e o nome das colunas que
compõem estas tabelas.
• Para o nosso exemplo, poderíamos definir
nosso modelo lógico conforme o seguinte:
Aluno(mat_aluno, nome, endereco)
Turma (cod_turma, sala, periodo)
Modelo lógico
• É importante salientar que os detalhes
internos de armazenamento, por exemplo,
não são descritos no modelo lógico, pois estas
informações fazem parte do modelo físico,
que nada mais é que a tradução do modelo
lógico para a linguagem do software escolhido
para implementar o sistema.
Modelo lógico
• GUIMARÃES (2003, p.32) defende que como
muitas aplicações de engenharia, o projeto de
uma base de dados através da técnica top
down ou de refinamento sucessivos é
largamente utilizado. Ele começa pela análise
dos requisitos dos usuários finais da BD e da
visão externa que eles têm sobre os dados.
Modelo lógico
• Esta visão e requisitos dependem da aplicação
pretendida da BD, variam de um usuário para
outro dentro da organização, e refletem suas
necessidades para o trabalho diário. Ela é
comumente informal e incompleta, em graus
que variam com o nível de informatização da
aplicação (ou da organização).
Modelo lógico
• Os objetivos finais dessa análise são: (i) obter
uma visão unificada de todos os dados da
aplicação, e (ii) definir os procedimentos
funcionais para operar com os dados.
• É portanto, uma sistemática similar à análise de
sistemas convencional.
• Esta visão unificada dos dados é comumente
chamada de modelagem de dados e corresponde
a uma abstração do mundo real contendo o
conjunto de informações sobre o mesmo que
julgamos importante armazenar e manipular.
Modelo lógico
• O projeto top down da BD através de
modelagem de dados consiste em especificar
os dados através de refinamento sucessivos,
mapeando os dados definidos num nível mais
alto e abstrato para o nível seguinte, menos
abstrato e mais detalhado.
Modelo lógico
• No nível mais alto a visão e requisitos da BD
ainda é informal e é normalmente
apresentada sob a forma de documentos
textuais. Vamos denominá-la de visão externa
de dados.
Modelo lógico
• O próximo nível consiste na especificação
lógica dos dados num formato de projeto
lógico de dados e, dependendo do SGBD
escolhido, pode ser de nível suficientemente
alto para esconder a maioria dos detalhes de
implementação.
Modelo lógico
• O último nível é denominado de projeto físico
dos dados e corresponde à organização
interna do armazenamento dos dados pelo
SGBD e à definição de estruturas de dados
auxiliares visando uma maior eficiência na
recuperação e manipulação dos dados.
Dependendo do SGBD uma parte considerável
do nível físico fica escondida das aplicações.
Modelo lógico
VISAO
EXTERNA 1
VISAO
EXTERNA N
MODELO
CONCEITUAL
MODELO
LÓGICO
MODELO
FÍSICO
MUNDO
REAL
Independente do
SGBD
Dependente do SGBD
Projeto Top Down de uma Base de dados (GUIMARÃES, 2003, p.33)
Esquema
conceitual
Esquema
lógico
Esquema
físico
A linguagem SQL
• Segundo GUIMARÃES (2003, p.99), o modelo relacional
desenvolvido por [Codd70] definiu as metalinguagens
álgebra relacional e cálculo relacional, que
implementam os conceitos básicos do modelo. Elas
tiveram grande influencia no desenvolvimento
subseqüente de propótipos do modelo relacional.
• SQL (Structured Query Language) é uma linguagem de
definição e de manipulação de dados relacionais,
desenvolvida nos laboratórios da IBM nos anos 70 e
hoje padronizada pelos comitês ISO/ANSI.
A linguagem SQL
• OLIVEIRA (2002, p.18), complementa que SQL
é um conjunto de comandos de manipulação
de banco de dados utilizado para criar e
manter a estrutura desse banco de dados,
além de incluir, excluir, modificar e pesquisar
informações nas tabelas dele. A linguagem
SQL não é uma linguagem de programação
autônoma; poderia ser chamada de
“sublinguagem”.
A linguagem SQL
• A linguagem SQL não é procedural, logo é
possível especificar o que deve ser feito, e não
como deve ser feito. Dessa forma, um
conjunto de linhas (set) será atingido pelo
comando e não cada uma das linhas, como é
feito no ambiente procedural. Portanto, não é
necessário entender o funcionamento interno
do banco de dados e como e onde estão
armazenados fisicamente os dados.
A linguagem SQL
• Teoricamente deveria ser possível transferir
facilmente os comandos SQL de um banco de
dados para outro. Contudo, isso não é
possível. Naturalmente, boa parte do trabalho
poderá ser aproveitado, mas deve-se fazer
adaptações em função do banco de dados que
está sendo utilizado.
Divisão da linguagem
SQL
- DDL (Data Definition Language): permite a criação
dos componentes do banco de dados, como
tabelas, indicies, etc. Os principais comandos são:
CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE
INDEX, ALTER INDEX, DROP INDEX;
- DML (Data Manipulation Language): permite a
manipulação dos dados armazenados no banco de
dados. Comandos DML: INSERT, DELETE, UPDATE;
Divisão da linguagem
SQL
- DQL (Data Query Language): permite extrair
dados do banco de dados. Comando: SELECT
- DCL (Data Control Language): provê segurança
interna do banco de dados: Comandos: CREATE
USER, ALTER USER, GRANT, REVOKE, CREATE
SCHEMA;
Divisão da linguagem
SQL
• Com o advento da SQL-99, a linguagem SQL
passou a incorporar comandos procedurais
(Begin, IF, funções, procedimentos) que, na
prática, já existiam como extensões da
linguagem.
Divisão da linguagem
SQL
• Essas extensões, até hoje, são específicas de
cada banco de dados e, portanto, a Oracle tem
a sua própria linguagem procedural que
estende a SQL, que é a PL/SQL.
• A Microsoft incorporou no SQLServer o
Transact-SQL com o mesmo objetivo. A idéia é
que, num futuro próximo, exista um padrão de
programação em todos os banco de dados.

BD I - Aula 07 A - Projetando BD

  • 1.
    • ANÁLISE EDESENVOLVIMENTO DE SISTEMAS • SISTEMAS DE INFORMAÇÃO Rodrigo Kiyoshi Saito / rodrigok@anchieta.br BANCO DE DADOS I
  • 2.
    Tópicos abordados • ProjetandoBanco de Dados • Modelo conceitual • Modelo lógico • Divisão da linguagem SQL
  • 3.
    PROJETANDO BANCO DE DADOS •Segundo OLIVEIRA, (2002, p.21), antes de utilizarmos os comandos SQL, vamos identificar a forma de planejar a criação do banco de dados. Esse planejamento é extremamente importante para a estabilidade de todo o sistema. Estudos indicam que quanto maior o tempo despendido no projeto do banco de dados, menor será o tempo despendido na manutenção do modelo.
  • 4.
    PROJETANDO BANCO DE DADOS •OLIVEIRA (2002, p.21) explica ainda que podemos comparar a criação de um sistema com a construção de um edifício. O projeto de banco de dado está para o sistema da mesma forma que a estrutura do prédio está para o edifício. Se não for dada a devida atenção ao desenho do banco de dados, pode-se comprometer todo o desenvolvimento do sistema.
  • 5.
    PROJETANDO BANCO DE DADOS •É como construir um edifício utilizando uma base inadequada: um dia o edifício cairá. De outra forma, quanto maior for o tempo dedicado ao estudo das necessidades de informação do sistema em desenvolvimento, maior será o tempo economizado no desenvolvimento do sistema.
  • 6.
    PROJETANDO BANCO DE DADOS •O sistema terá melhor qualidade, e será mais fácil, no futuro, implementar novas rotinas, procedimentos e agregar novas informações necessárias. • O processo de análise dos dados pressupõe três fases distintas e integradas, como apresenta a figura a seguir
  • 7.
    PROJETANDO BANCO DE DADOS •Análise e modelagem utilizando modelo de entidade relacionamento e normalização de dados. • Desenho com definição de tabelas, índices, visões, etc. Referência: Três fases segundo OLIVEIRA (2002, p. 22) Modelo Conceitual de Dados Desenho do Banco de Dados Criação do Banco de Dados Banco de dados Operacional
  • 8.
    PROJETANDO BANCO DE DADOS •Segundo o autor e colunista Ricardo Rezende, da revista especializada em desenvolvimento da Devmedia, o sistema de banco de dados deve garantir uma visão totalmente abstrata do banco de dados para o usuário.
  • 9.
    PROJETANDO BANCO DE DADOS •Para o usuário do banco de dados pouco importa qual unidade de armazenamento está sendo usada para guardar seus dados, contanto que os mesmos estejam disponíveis no momento necessário. Referência: (http://www.sqlmagazine.com.br/Colunistas/RicardoRezende/02_ConceitosBD.asp, acessado em 12/04/2009),
  • 10.
    PROJETANDO BANCO DE DADOS •Esta abstração se dá em três níveis – Nível de visão do usuário: as partes do banco de dados que o usuário tem acesso de acordo com a necessidade individual de cada usuário ou grupo de usuários; – Nível conceitual: define quais os dados que estão armazenados e qual o relacionamento entre eles; – Nível físico: é o nível mais baixo de abstração, em que define efetivamente de que maneira os dados estão armazenados
  • 11.
  • 12.
    PROJETANDO BANCO DE DADOS •Todo bom sistema de banco de dados deve apresentar um projeto, que visa a organização das informações e utilização de técnicas para que o futuro sistema obtenha boa performance e também facilite infinitamente as manutenções que venham a acontecer.
  • 13.
    PROJETANDO BANCO DE DADOS •O projeto de banco de dados se dá em duas fases: – Modelagem conceitual; – Projeto lógico.
  • 14.
    PROJETANDO BANCO DE DADOS •Estas duas etapas se referem a um sistema de banco de dados ainda não implementado, ou seja, que ainda não exista, um novo projeto. Para os casos em que o banco de dados já exista, mas é um sistema legado, por exemplo, ou um sistema muito antigo sem documentação, o processo de projeto de banco de dados se dará através da utilização de uma técnica chamada de Engenharia Reversa, que será visto em outra oportunidade.
  • 15.
    Modelo conceitual • Éa descrição do BD de maneira independente ao SGBD, ou seja, define quais os dados que aparecerão no BD, mas sem se importar com a implementação que se dará ao BD. Desta forma, há uma abstração em nível de SGBD.
  • 16.
    Modelo conceitual • Umadas técnicas mais utilizadas dentre os profissionais da área é a abordagem entidade- relacionamento (ER), onde o modelo é representado graficamente através do diagrama entidade-relacionamento (DER)
  • 17.
    Modelo conceitual O modeloacima, entre outras coisas, nos traz informações sobre Alunos e Turmas. Para cada Aluno, será armazenado seu número de matrícula, seu nome e endereço, enquanto para cada turma, teremos a informação de seu código, a sala utilizada e o período.
  • 18.
  • 19.
    Modelo lógico • Descreveo BD no nível do SGBD, ou seja, depende do tipo particular de SGBD que será usado. Não podemos confundir com o Software que será usado. O tipo de SGBD que o modelo lógico trata é se o mesmo é relacional, orientado a objetos, hierárquico, etc.
  • 20.
    Modelo lógico • Abordaremoso SGBD relacional, por serem os mais difundidos. Nele, os dados são organizados em tabelas Aluno mat_aluno nome endereco 1 Cecília Ortiz Rezende Rua dos Ipês, 37 2 Abílio José Dias Avenida Presidente Jânio Quadros, 357 3 enata Oliveira Franco Rua Nove de Julho, 45 Turma cod_turma sala periodo 1 8 Manhã 2 5 Noite
  • 21.
    Modelo lógico • Omodelo lógico do BD relacional deve definir quais as tabelas e o nome das colunas que compõem estas tabelas. • Para o nosso exemplo, poderíamos definir nosso modelo lógico conforme o seguinte: Aluno(mat_aluno, nome, endereco) Turma (cod_turma, sala, periodo)
  • 22.
    Modelo lógico • Éimportante salientar que os detalhes internos de armazenamento, por exemplo, não são descritos no modelo lógico, pois estas informações fazem parte do modelo físico, que nada mais é que a tradução do modelo lógico para a linguagem do software escolhido para implementar o sistema.
  • 23.
    Modelo lógico • GUIMARÃES(2003, p.32) defende que como muitas aplicações de engenharia, o projeto de uma base de dados através da técnica top down ou de refinamento sucessivos é largamente utilizado. Ele começa pela análise dos requisitos dos usuários finais da BD e da visão externa que eles têm sobre os dados.
  • 24.
    Modelo lógico • Estavisão e requisitos dependem da aplicação pretendida da BD, variam de um usuário para outro dentro da organização, e refletem suas necessidades para o trabalho diário. Ela é comumente informal e incompleta, em graus que variam com o nível de informatização da aplicação (ou da organização).
  • 25.
    Modelo lógico • Osobjetivos finais dessa análise são: (i) obter uma visão unificada de todos os dados da aplicação, e (ii) definir os procedimentos funcionais para operar com os dados. • É portanto, uma sistemática similar à análise de sistemas convencional. • Esta visão unificada dos dados é comumente chamada de modelagem de dados e corresponde a uma abstração do mundo real contendo o conjunto de informações sobre o mesmo que julgamos importante armazenar e manipular.
  • 26.
    Modelo lógico • Oprojeto top down da BD através de modelagem de dados consiste em especificar os dados através de refinamento sucessivos, mapeando os dados definidos num nível mais alto e abstrato para o nível seguinte, menos abstrato e mais detalhado.
  • 27.
    Modelo lógico • Nonível mais alto a visão e requisitos da BD ainda é informal e é normalmente apresentada sob a forma de documentos textuais. Vamos denominá-la de visão externa de dados.
  • 28.
    Modelo lógico • Opróximo nível consiste na especificação lógica dos dados num formato de projeto lógico de dados e, dependendo do SGBD escolhido, pode ser de nível suficientemente alto para esconder a maioria dos detalhes de implementação.
  • 29.
    Modelo lógico • Oúltimo nível é denominado de projeto físico dos dados e corresponde à organização interna do armazenamento dos dados pelo SGBD e à definição de estruturas de dados auxiliares visando uma maior eficiência na recuperação e manipulação dos dados. Dependendo do SGBD uma parte considerável do nível físico fica escondida das aplicações.
  • 30.
    Modelo lógico VISAO EXTERNA 1 VISAO EXTERNAN MODELO CONCEITUAL MODELO LÓGICO MODELO FÍSICO MUNDO REAL Independente do SGBD Dependente do SGBD Projeto Top Down de uma Base de dados (GUIMARÃES, 2003, p.33) Esquema conceitual Esquema lógico Esquema físico
  • 31.
    A linguagem SQL •Segundo GUIMARÃES (2003, p.99), o modelo relacional desenvolvido por [Codd70] definiu as metalinguagens álgebra relacional e cálculo relacional, que implementam os conceitos básicos do modelo. Elas tiveram grande influencia no desenvolvimento subseqüente de propótipos do modelo relacional. • SQL (Structured Query Language) é uma linguagem de definição e de manipulação de dados relacionais, desenvolvida nos laboratórios da IBM nos anos 70 e hoje padronizada pelos comitês ISO/ANSI.
  • 32.
    A linguagem SQL •OLIVEIRA (2002, p.18), complementa que SQL é um conjunto de comandos de manipulação de banco de dados utilizado para criar e manter a estrutura desse banco de dados, além de incluir, excluir, modificar e pesquisar informações nas tabelas dele. A linguagem SQL não é uma linguagem de programação autônoma; poderia ser chamada de “sublinguagem”.
  • 33.
    A linguagem SQL •A linguagem SQL não é procedural, logo é possível especificar o que deve ser feito, e não como deve ser feito. Dessa forma, um conjunto de linhas (set) será atingido pelo comando e não cada uma das linhas, como é feito no ambiente procedural. Portanto, não é necessário entender o funcionamento interno do banco de dados e como e onde estão armazenados fisicamente os dados.
  • 34.
    A linguagem SQL •Teoricamente deveria ser possível transferir facilmente os comandos SQL de um banco de dados para outro. Contudo, isso não é possível. Naturalmente, boa parte do trabalho poderá ser aproveitado, mas deve-se fazer adaptações em função do banco de dados que está sendo utilizado.
  • 35.
    Divisão da linguagem SQL -DDL (Data Definition Language): permite a criação dos componentes do banco de dados, como tabelas, indicies, etc. Os principais comandos são: CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, ALTER INDEX, DROP INDEX; - DML (Data Manipulation Language): permite a manipulação dos dados armazenados no banco de dados. Comandos DML: INSERT, DELETE, UPDATE;
  • 36.
    Divisão da linguagem SQL -DQL (Data Query Language): permite extrair dados do banco de dados. Comando: SELECT - DCL (Data Control Language): provê segurança interna do banco de dados: Comandos: CREATE USER, ALTER USER, GRANT, REVOKE, CREATE SCHEMA;
  • 37.
    Divisão da linguagem SQL •Com o advento da SQL-99, a linguagem SQL passou a incorporar comandos procedurais (Begin, IF, funções, procedimentos) que, na prática, já existiam como extensões da linguagem.
  • 38.
    Divisão da linguagem SQL •Essas extensões, até hoje, são específicas de cada banco de dados e, portanto, a Oracle tem a sua própria linguagem procedural que estende a SQL, que é a PL/SQL. • A Microsoft incorporou no SQLServer o Transact-SQL com o mesmo objetivo. A idéia é que, num futuro próximo, exista um padrão de programação em todos os banco de dados.

Notas do Editor

  • #25 Esta visão e requisitos dependem da aplicação pretendida da BD, variam de um usuário para outro dentro da organização, e refletem suas necessidades para o trabalho diário. Ela é comumente informal e incompleta, em graus que variam com o nível de informatização da aplicação (ou da organização). É comum procedimentos manuais intercalarem-se ou sobreporem-se a procedimentos automatizados via computador. A descrição desses procedimentos aparece em documentos, relatórios e muitas vezes de forma verbal. Se a BD for corporativa, as interfaces com outras áreas ou departamentos da organização são muitas vezes incompletas ou ineficientes. Um exemplo de ineficiência é a emissão de um relatório por um departamento A para um departamento B, onde B redigita os dados do relatório para integração com seus próprios dados e processamento posterior.
  • #28 No nível mais alto a visão e requisitos da BD ainda é informal e é normalmente apresentada sob a forma de documentos textuais. Vamos denominá-la de visão externa de dados.   O próximo passo consiste em mapear esta visão externa dos dados para um modelo conceitual de dados de nível suficientemente alto para esconder detalhes de implementação, mas ao mesmo tempo suficientemente detalhado para descrever os diversos tipos de dados requeridos pela aplicação, os seus inter-relacionamentos e algumas regras de consistências. Esse nível é chamado de modelagem ou projeto conceitual de dados.   Em 1976 uma forma gráfica de sucinta de modelagem conceitual foi proposta por [Chen76] e denominada de modelo entidade-relacionamento (MER). Ela teve grande aceitação por ser um meio de comunicação do projeto conceitual de fácil compreensão por usuários finais da BD (possivelmente leigos), e ao mesmo tempo ser capaz de formalizar vários aspectos do projeto. A modelagem conceitual utilizando o MER consiste em se projetar uma série de diagramas entidade-relacionamento que descrevem os dados da BD e os seus inter-relacionamentos.
  • #29 O próximo nível consiste na especificação lógica dos dados num formato de projeto lógico de dados e, dependendo do SGBD escolhido, pode ser de nível suficientemente alto para esconder a maioria dos detalhes de implementação. Fazendo uma analogia com linguagens de programação, ele corresponde, aproximadamente, ao projeto de estruturas de dados de um programa, onde os tipos de dados são completamente definidos.   O mapeamento de diagramas entidades-relacionamento para o nível lógico pode ser feito através de ferramentas CASE sofisticadas ou manualmente.   O nível lógico situa-se na fronteira entre a modelagem de dados que é independente do SGBD e aquela que é específica ao SGBD.
  • #30 O último nível é denominado de projeto físico dos dados e corresponde à organização interna do armazenamento dos dados pelo SGBD e à definição de estruturas de dados auxiliares visando uma maior eficiência na recuperação e manipulação dos dados. Dependendo do SGBD uma parte considerável do nível físico fica escondida das aplicações.   A modelagem de dados normalmente não contempla o mapeamento dos procedimentos funcionais (vistos na visão externa acima) em programas para manipular a BD, embora este seja uma das atividades mais complexas do projeto de uma aplicação de BD.   A especificação dos dados de uma BD é comumente chamada de esquema de dados e também se pode chamar os níveis vistos acima de esquema conceitual, esquema lógico e esquema físico ou esquema interno da BD. É importante distinguir o esquema de uma BD, que reflete o projeto e a especificação dos dados (em geral fixos), do conteúdo específico da BD, que é chamado de instância da BD, normalmente variável ao tempo.
  • #33 OLIVEIRA (2002, p.18), complementa que SQL é um conjunto de comandos de manipulação de banco de dados utilizado para criar e manter a estrutura desse banco de dados, além de incluir, excluir, modificar e pesquisar informações nas tabelas dele. A linguagem SQL não é uma linguagem de programação autônoma; poderia ser chamada de “sublinguagem”. Quando se escrevem aplicações para banco de dados, é necessário utilizar uma linguagem de programação tradicional (C, Java, Pascal, COBOL etc) e embutir comandos SQL para manipular os dados. Em um modelo relacional, apenas um tipo de estrutura de dados existe; a tabela. Novas tabelas são criadas com o junção ou combinação de outras tabelas. Utilizando apenas um comando SQL é possível pesquisar dados em diversas tabelas ou atualizar e excluir diversas linhas de tabelas.