A arquitetura de banco de dados ANSI SPARC de três níveis sugere três níveis de abstração de dados, a saber, níveis externos , conceituais e internos .
Se bem entendi, o nível externo representa as visões dos usuários, o nível conceitual é o diagrama conceitual (modelo ER) e o nível interno é o modelo relacional.
Meu problema é que encontrei na literatura que além desses, existe um quarto nível (o mais baixo), que é o nível físico .
Eu quero entender o que é isso concretamente? É neste ponto que definimos o tipo de índice, caminhos de acesso e coisas relacionadas ao acesso físico aos dados?
Embora as definições dos esquemas ou níveis de representação da arquitetura ANSI/SPARC não tenham atingido a precisão desejada, são apenas três, e são denominados external , conceptual e internal , respectivamente.
Que eu saiba, não existe um quarto nível, pois as estruturas físicas empregadas por um sistema gerenciador de banco de dados (DBMS para abreviar) compõem, de fato, o esquema interno, conforme explicarei a seguir.
Nota : Mesmo que imprecisa, a arquitetura ANSI/SPARC é definitivamente uma referência muito útil na construção de um sistema, então parece que a literatura que você encontrou contém informações imprecisas ou talvez faça uma referência à noção (também muito útil) onde as camadas de abstração de um banco de dados são chamados de conceituais , lógicos e físicos , que possuem diferentes implicações.
Breves descrições dos três níveis ANSI/SPARC
Considero oportuno descrever cada nível (ordenado do mais alto ao mais baixo grau de abstração) para expor seu escopo:
O nível externo é a forma como a informação é apresentada aos usuários finais de um sistema informatizado de informação; por exemplo, a organização específica das informações exibidas ou solicitadas nas telas ou janelas (por exemplo, listas, grades, rótulos, caixas de texto, caixas de seleção, menus suspensos etc.) de um programa aplicativo.
O nível conceitual envolve a representação da estrutura da informação como (a) percebida pelos especialistas de negócios e (b) modelada pelos analistas de banco de dados, comumente em termos de tipos de entidade, propriedades e associações, portanto, é composta de ideias ou conceituações , ainda não é “concreto” e sua representação requer construtos que estão em níveis mais baixos de abstração. O nível conceitual é informalmente referido como as regras de negócios de uma determinada organização em relação aos seus requisitos de informação. Além disso, esquemas desse tipo são geralmente — embora não necessariamente — expressos por meio de dispositivos gráficos como, por exemplo, diagramas de entidade-relacionamento para facilitar a comunicação entre as partes interessadas.
O nível interno tem a ver com como o SGBD de relevância armazena a informação de forma concreta; ex., arrays, páginas , extensões, arquivos, registros, campos, ponteiros, etc. Este é o nível mais baixo de abstração já que, para colocar de alguma forma, o SGBD “salva” as informações em estruturas “reais”, então isso também pode ser concebido como o nível físico da arquitetura, mas nomeá-lo dessa maneira não implica que haja um quarto nível. Vale ressaltar que pode haver diferentes subníveis de abstração dentro do próprio nível interno, mas esse fator depende dos mecanismos particulares utilizados pelo SGBD em questão.
Bancos de dados relacionais criados em SGBDs SQL com relação à arquitetura ANSI/SPARC
Quando um praticante utiliza uma plataforma SQL (Microsoft SQL Server, IBM DB2, Sybase ASE, PostgreSQL, etc.) para construir um banco de dados utilizando os mecanismos propostos pelo modelo relacional do Dr. EF Codd :
As tabelas base , colunas, tipos (e domínios quando disponíveis) e restrições devem refletir as características do esquema conceitual (tipos de entidade, propriedades, associações, cardinalidades) para que os dados (na forma de linhas) permaneçam consistentes com ele. As declarações feitas por meio de uma sublinguagem de dados (por exemplo, SQL DDL) das tabelas base, colunas, tipos e restrições são instrumentos que formalizam o esquema conceitual, por isso são consideradas construções lógicas e, como tal, ainda não “tocam ” no nível físico, eles ainda estão livres de estruturas de armazenamento de concreto específicas de SGBD. A normalização, sendo um procedimento lógico, aplica-se aqui, não ao esquema conceitual.
As visualizações (ou seja, tabelas derivadas que “combinam” colunas de uma ou mais tabelas base ou também de outras tabelas derivadas, geralmente em virtude de operações SQL DML envolvendo JOINs) mantêm uma correspondência próxima com o nível externo , porque reúnem e fornecem as informações solicitadas ou enviadas pelas telas ou janelas de um ou mais programas aplicativos, exatamente como os usuários finais as veem.
Os índices , páginas , extensões , arquivos 1 , registros 2 , campos 3 , partições, mapas de alocação e muitos outros arranjos correspondem ao esquema interno , pois são as estruturas “físicas” utilizadas por um SGBD para armazenar as informações.
O SGBD SQL funciona como um mediador (1) entre as representações internas e lógicas dos esquemas conceituais e (2) entre as representações internas e externas por meio de conexões via visualizações.
Notas
1, 2, 3 Observe como é importante distinguir entre (a) arquivos, registros e campos e (b) tabelas, linhas e colunas —ou relações, atributos e tuplas— , pois são elementos que pertencem a níveis distintos de abstração e, portanto, são suscetíveis de operações e tratamentos muito diferentes, tendo, portanto, impactos muito diferentes.
Eu entendo as três camadas como:
Na modelagem ER atual, você criaria um modelo conceitual ou lógico, capturando os requisitos dos usuários e, em seguida, criaria um 3NF a partir dele, para evitar inconsistências e capturar as multiplicidades corretas dos relacionamentos (1:1, 1:N, N:M ). Aqui você também dividiria entidades, se necessário. Por exemplo, divida endereços de clientes, porque você pode precisar de endereços de cobrança e entrega. A última etapa seria criar o modelo físico, que considera índices, chaves substitutas e desnormalização cuidadosa. Isso também inclui a consideração de otimizações avançadas posteriormente, como tipos nativos (por exemplo, double, int64, ...), tipos de índices (btree vs bitmap, índices de junção, etc.), layouts de tabela especiais (orientados por linha ou coluna, tabelas organizadas por índice , particionamento vertical ou horizontal, inclusão de linhas dependentes).
O caminho de acesso geralmente é determinado pelo mecanismo sql e seu otimizador com base no que é conhecido sobre os dados (estatísticas, estrutura quantitativa) e os índices disponíveis e pode ser consultado no plano de execução de cada instrução SQL.
esse padrão ANSI define 3 níveis diferentes de descrição da visão + esquema de um banco de dados. A camada "mais baixa" é independente disso - não faz parte do padrão mencionado - pois é o próprio banco de dados.