Loading AI tools
Literatura Da Wikipédia, a enciclopédia livre
Um banco de dados relacional é um banco de dados que modela os dados de uma forma que eles sejam percebidos pelo usuário como tabelas, ou mais formalmente relações.
O termo é aplicado aos próprios dados, quando organizados dessa forma, ou a um Sistema Gerenciador de Banco de Dados Relacional (SGBDR) – do inglês Relational database management system (RDBMS) – um programa de computador que implementa a abstração.
Os Bancos de dados relacionais (BDR) surgiram em meados da década de 1970. Porém, apenas alguns anos mais tarde as empresas passaram a utilizá-los no lugar de arquivos simples (do inglês flat file), bancos de dados hierárquicos e em rede.
Em 1985, Edgar Frank Codd, criador do modelo relacional, publicou um artigo onde definia 13 regras para que um Sistema Gerenciador de Banco de Dados (SGBD) fosse considerado relacional:
Os Bancos de Dados Relacionais foram desenvolvidos para prover acesso facilitado aos dados, possibilitando que os usuários utilizassem uma grande variedade de abordagens no tratamento das informações. Pois, enquanto em um banco de dados hierárquico os usuários precisam definir as questões de negócios de maneira específica, iniciando pela sua raiz, nos Bancos de Dados Relacionais os usuários podem fazer perguntas relacionadas aos negócios por meio de vários pontos.
A linguagem padrão dos Bancos de Dados Relacionais é a Structured Query Language, ou simplesmente SQL, como é mais conhecida.
Um Banco de Dados Relacional segue o Modelo Relacional.
A arquitetura de um banco de dados relacional pode ser descrita de maneira informal ou formal. Na descrição informal estamos preocupados com aspectos práticos da utilização e usamos os termos tabela, linha e coluna. Na descrição formal estamos preocupados com a semântica formal do modelo e usamos termos como relação (tabela), tupla(linhas) e atributo(coluna).
Todos os dados de um banco de dados relacional (BDR) são armazenados em tabelas. Uma tabela é uma simples estrutura de linhas e colunas. Em uma tabela, cada linha contém um mesmo conjunto de colunas. Em um banco de dados podem existir uma ou centenas de tabelas, sendo que o limite pode ser imposto tanto pela ferramenta de software utilizada, quanto pelos recursos de hardware disponíveis no equipamento.
As tabelas associam-se entre si por meio de regras de relacionamentos, que consistem em associar um ou vários atributos de uma tabela com um ou vários atributos de outra tabela.
Modelo teórico usado para representar conceitualmente um BD, Idealizado por Codd (1970). Baseado numa estrutura de dados simples chamada relação. É o modelo mais amplamente usado, principalmente em aplicações convencionais de BD.
Cada linha formada por uma lista ordenada de colunas representa um registro, ou tupla. Os registros não precisam conter informações em todas as colunas, podendo assumir valores nulos quando assim se fizer necessário.
Resumidamente, um registro é uma instância de uma tabela, ou entidade.
O start da modelagem se dá a partir das ENTIDADES. Uma entidade é uma representação de um conjunto de informações sobre determinado conceito do sistema. Toda entidade possui ATRIBUTOS, que são as informações que referenciam a entidade.
Para exemplificar no sistema de controle de Biblioteca, partimos do conceito principal que é o empréstimo de obras por usuários da biblioteca. A partir deste conceito inicial, vamos ramificando e descobrindo novos conceitos. Podemos iniciar nosso raciocínio da seguinte forma:
"Uma biblioteca possui Obras literárias que podem ser tomadas em empréstimos pelos usuários credenciados."
Podemos rapidamente enxergar um cadastro de livros, um cadastro de usuários e um registro de empréstimos, certo? É essa visão que temos que ter ao modelarmos um banco, isto é, devemos detectar as informações que devemos armazenar.
Para identificar se aquele conceito pode ser uma entidade você deve apenas se perguntar: "Eu desejo armazenar quais informações sobre este conceito?" Se houver informações a serem armazenadas, você tem uma ENTIDADE. Exemplificando: Eu desejo armazenar os seguintes dados do livro: Título, Autor, Editora, Ano, Edição e Volume. Temos então a entidade Livro.
As colunas de uma tabela são também chamadas de atributos. Ex.: O campo Nome, ou endereço de uma tabela de um BD relacional.
As tabelas relacionam-se umas as outras através de chaves. Uma chave é um conjunto de um ou mais atributos que determinam a unicidade de cada registro.
Por exemplo, se um banco de dados tem como chaves Código do Produto e ID Sistema, sempre que acontecer uma inserção de dados o sistema de gerenciamento de banco de dados irá fazer uma consulta para identificar se o registro já não se encontra gravado na tabela. Neste caso, um novo registro não será criado, resultando esta operação apenas da alteração do registro existente.
A unicidade dos registros, determinada por sua chave, também é fundamental para a criação dos índices.
Temos dois tipos de chaves:
Com o advento do Modelo de Entidades e Relacionamentos foi causada uma confusão entre os termos relação e relacionamento
O Modelo Relacional, quando descrito de forma matemática, é definido como um modelo formado por relações (no sentido matemático) entre os domínios. Cada tupla é um elemento do conjunto relação.
Ou seja, a relação é a tabela.
Um relacionamento do Modelo de Entidades e Relacionamentos é uma associação entre entidades distintas. Não há relação direta entre o nome relacionamento e o nome relação.
Porém, um relacionamento, do Modelo de Entidades e Relacionamentos é traduzido para a criação de atributos com chaves externas do Modelo Relacional. Esta tradução é feita ligando-se um campo de uma tabela X com um campo de uma tabela Y, por meio da inclusão do campo chave da tabela Y como um campo (conhecido como chave estrangeira) da tabela X.
Por meio das chaves estrangeiras, é possível implementar restrições nos SGBDR.
Existem alguns tipos de relacionamentos possíveis no MER:
Os relacionamentos 1 para 1 e 1 para N podem ser mapeados diretamente em chaves estrangeiras nas tabelas originais. Já o relacionamento N para N exige o uso de uma tabela auxiliar.
No relacionamento N:N não há chave estrangeira.
A normalização de dados é um processo que simplifica grupos complexos de dados para evitar redundâncias e possibilitar um maior desempenho nas pesquisas.[1]
É o processo de organização eficiente dos dados dentro de um banco de dados cujos objetivos principais são:
Existem cinco estágios de normalização, 1º, o 2º, o 3º, o 4º e o 5º. Para um banco de dados se encontrar em cada um desses estágios ou formas (denominadas formas normais), cada uma de suas tabelas deve atender a alguns pré-requisitos. Os pré-requisitos são cumulativos, isto é, para alcançar a 3ª forma normal (3FN), um banco de dados precisa atender aos pré-requisitos das 1ª e 2ª formas normais, acrescidos dos requisitos exclusivos da 3FN.
Um atributo B possui uma dependência funcional do atributo A se, para cada valor do atributo A, existe exatamente um único valor do atributo B.
A dependência funcional é representada por A → B.
Exemplo: Observe os conjuntos:
CPF | Nome |
---|---|
1 | José |
2 | João |
3 | Gabriel |
4 | M. Guedes |
Observe que existe uma dependência entre os valores dos conjuntos, ou seja, nome é função do CPF, se eu estiver com numero do CPF, poderei encontrar o nome da pessoa correspondente.
Essa dependência é expressa por:
CPF → Nome
Leia da seguinte maneira: - com um número de CPF posso encontrar nome da pessoa, ou - nome depende da funcionalidade do CPF.
Uma relação está na primeira forma normal (1FN) se os valores de seus atributos são atômicos (simples, indivisíveis) e monovalorados. Em outras palavras, FN1 não permite “relações dentro de relações” ou “relações como atributos de tuplas”.[2] Uma tabela está na primeira forma normal quando seus atributos não contêm grupos de repetição, ou seja, multivalorados.
Exemplo:
ClienteID | Nome | Telefone |
---|---|---|
123 | Rachel Ingram | 555-861-2025 |
456 | James Wright | 555-403-1659 555-776-4100 |
789 | Maria Fernandez | 555-808-9633 |
Esta tabela logo acima não está na primeira forma normal porque apresenta grupos de repetição (possibilidade de mais de um telefone por cliente).
Já estas tabelas logo abaixo, Cliente e Telefone, estão na primeira forma normal.
Tabela Cliente:
ClienteID | Nome |
---|---|
123 | Rachel |
456 | James |
789 | Maria |
Tabela Telefone:
ClienteID | Telefone |
---|---|
123 | 555-861-2025 |
456 | 555-403-1659 |
456 | 555-776-4100 |
789 | 555-808-9633 |
Uma relação está na FN2 quando duas condições são satisfeitas:
1 - A relação está na 1FN;
2 - Todo atributo da tabela seja dependente funcional da chave completa e não de parte da chave. Ou seja, Todos os atributos não-chave dependem funcionalmente de toda a chave primária.
A 3FN exige que não existam atributos transitivamente dependentes da chave.
Um exemplo de uma tabela 2FN que não atende o critério para 3FN é:
Torneio | Ano | Vencedor | Data de nascimento do vencedor |
---|---|---|---|
Indiana Invitational | 1998 | Al Fredrickson | 21 de julho de 1975 |
Cleveland Open | 1999 | Bob Albertson | 28 de setembro de 1968 |
Des Moines Masters | 1999 | Al Fredrickson | 21 de julho de 1975 |
Indiana Invitational | 1999 | Chip Masterson | 14/3/1977 |
A chave primária composta é {Torneio, Ano}.
A tabela não está na terceira forma normal porque o atributo "data de nascimento do vencedor" é dependente transitivamente de {Torneio, Ano} via o atributo "Vencedor". O fato da data de nascimento do vencedor não ser dependente do vencedor torna a tabela vulnerável a inconsistências lógicas, já que nada impediria de uma mesma pessoa aparecer com datas de nascimento diferentes em dois registros.
Para atender a terceira forma normal, a mesma informação deveria ser dividida em duas tabelas:
Torneio | Ano | Vencedor |
---|---|---|
Indiana Invitational | 1998 | Al Fredrickson |
Cleveland Open | 1999 | Bob Albertson |
Des Moines Masters | 1999 | Al Fredrickson |
Indiana Invitational | 1999 | Chip Masterson |
Jogador | Data de nascimento |
---|---|
Chip Masterson | 14/3/1977 |
Al Fredrickson | 21 de julho de 1975 |
Bob Albertson | 28 de setembro de 1968 |
As duas tabelas acima estão na terceira forma normal.
De acordo com a DB-Engines, em março de 2021, os sistemas mais usados foram:[3]
De acordo com a empresa de pesquisa Gartner, em 2011, os cinco principais fornecedores de banco de dados relacional de software proprietário por receita foram Oracle (48,8%), IBM (20,2%), Microsoft (17,0%), SAP incluindo Sybase (4,6%) e Teradata (3,7 %).[4][5]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.