𝖂𝖎ƙ𝖎𝖊

Banco de dados: mudanças entre as edições

imported>Hamaranto
mSem resumo de edição
imported>Rui Malheiro
m (links)
Linha 11: Linha 11:
Freqüentemente, as colunas de uma tabela possuem um tipo de dados associado, definindo-as como dados de caractere, informações de data ou hora, números inteiros ou em ponto flutuante.
Freqüentemente, as colunas de uma tabela possuem um tipo de dados associado, definindo-as como dados de caractere, informações de data ou hora, números inteiros ou em ponto flutuante.


O [[modelo de rede]] amplia o modelo de tabela permitindo a adição de múltiplas tabelas. Um tipo de coluna de tabela pode ser definido como uma referência a uma ou mais entradas de uma tabela diferente. Assim, as tabelas são relacionadas por meio de referências, o que pode ser visualizado como uma estrutura de rede. Um subconjunto particular do modelo de rede, o [[modelo hierárquico]], limita os relacionamentos a uma estrutura de árvore, ao contrário da estrutura aplicada pelo modelo de rede completo.
O [[modelo em rede]] amplia o modelo de tabela permitindo a adição de múltiplas tabelas. Um tipo de coluna de tabela pode ser definido como uma referência a uma ou mais entradas de uma tabela diferente. Assim, as tabelas são relacionadas por meio de referências, o que pode ser visualizado como uma estrutura de rede. Um subconjunto particular do modelo de rede, o [[modelo hierárquico]], limita os relacionamentos a uma estrutura de árvore, ao contrário da estrutura aplicada pelo modelo de rede completo.


Os [[banco de dados relacional|bancos de dados relacionais]] são constituídos não de tabelas, mas de três componentes: uma coleção de estruturas de dados, a saber [[relações]]; um conjunto de operadores, a saber a [[álgebra relacional | álgebra]] e o [[cálculo relacional | cálculo]] relacionais; e um conjunto de restrições de integridade que definem os conjuntos de estados e mudanças de estado consistentes do banco de dados.
Os [[banco de dados relacional|bancos de dados relacionais]] são constituídos não de tabelas, mas de três componentes: uma coleção de estruturas de dados, a saber [[relações]]; um conjunto de operadores, a saber a [[álgebra relacional | álgebra]] e o [[cálculo relacional | cálculo]] relacionais; e um conjunto de restrições de integridade que definem os conjuntos de estados e mudanças de estado consistentes do banco de dados.
Linha 27: Linha 27:
Bancos de dados caracteristicamente modernos são desenvolvidos desde os anos da década de 1960. Um pioneiro nesse trabalho foi [[Charles Bachman]].
Bancos de dados caracteristicamente modernos são desenvolvidos desde os anos da década de 1960. Um pioneiro nesse trabalho foi [[Charles Bachman]].


A maneira mais prática de classificar bancos de dados é de acordo com o modelo de programação associado ao banco de dados. Diversos modelos foram utilizados ao longo da história, por determinados períodos. Historicamente, o modelo de '''bancos de dados hierárquico''' foi implementado primeiro; então surgiu o '''modelo de bancos de dados em rede'''; daí o '''modelo de bancos de dados relacional''' surgiu e ganhou destaque, acompanhado daquilo que é chamado modelo plano (tabular) para fins mais diretos e simples. Os dois primeiros e o último nunca foram descritos teoricamente, e são classificados como modelos de dados unicamente em contraste com o modelo relacional (que tem uma teoria de suporte). Esses três modelos sem teoria própria surgiram basicamente a partir de estruturas e modelos de programação, não modelos de dados.
A maneira mais prática de classificar bancos de dados é de acordo com o modelo de programação associado ao banco de dados. Diversos modelos foram utilizados ao longo da história, por determinados períodos. Historicamente, o [[modelo hierárquico|modelo de bancos de dados hierárquico]] foi implementado primeiro; então surgiu o [[modelo em rede|modelo de bancos de dados em rede]]; daí o [[modelo relacional|modelo de bancos de dados relacional]] surgiu e ganhou destaque, acompanhado daquilo que é chamado modelo plano (tabular) para fins mais diretos e simples. Os dois primeiros e o último nunca foram descritos teoricamente, e são classificados como modelos de dados unicamente em contraste com o modelo relacional (que tem uma teoria de suporte). Esses três modelos sem teoria própria surgiram basicamente a partir de estruturas e modelos de programação, não modelos de dados.


== Modelos de banco de dados ==
== Modelos de banco de dados ==


O modelo plano (ou tabular) consiste de matrizes simples, bidimensionais, compostas por elementos de [[dado]]s; todos os membros de uma determinada coluna devem ter valores similares, e todos os membros de uma linha são presumivelmente relacionados. Por exemplo, colunas com nome do usuário e senha podem ser usadas como parte de um sistema de dados de segurança. Cada coluna deverá ter uma senha específica relacionada com o usuário específico, registrado naquela mesma linha. Colunas de uma tabela geralmente têm um tipo de dado associado a elas, definindo se ali serão registrados dados alfanuméricos, datas ou horas, inteiros, números reais, etc. Este modelo plano é a base das [[planinha eletrônica|planilhas eletrônicas]].
O [[modelo plano]] (ou tabular) consiste de matrizes simples, bidimensionais, compostas por elementos de [[dado]]s; todos os membros de uma determinada coluna devem ter valores similares, e todos os membros de uma linha são presumivelmente relacionados. Por exemplo, colunas com nome do usuário e senha podem ser usadas como parte de um sistema de dados de segurança. Cada coluna deverá ter uma senha específica relacionada com o usuário específico, registrado naquela mesma linha. Colunas de uma tabela geralmente têm um tipo de dado associado a elas, definindo se ali serão registrados dados alfanuméricos, datas ou horas, inteiros, números reais, etc. Este modelo plano é a base das [[planinha eletrônica|planilhas eletrônicas]].


O modelo em rede permite que várias tabelas sejam usadas simultâneamente através do uso de apontadores (ou referências). Algumas colunas contém apontadores para outras tabelas ao invés de dados. Assim as tabelas são ligadas por referências, o que pode ser visto como uma rede. Uma variação particular deste modelo em rede, o modelo hierárquico, limita as relações a uma estrutura semelhante a uma árvore (hierarquia - tronco, galhos), ao invés do modelo mais geral direcionado por [[teoria dos grafos|grafos]].
O [[modelo em rede]] permite que várias tabelas sejam usadas simultâneamente através do uso de apontadores (ou referências). Algumas colunas contém apontadores para outras tabelas ao invés de dados. Assim as tabelas são ligadas por referências, o que pode ser visto como uma rede. Uma variação particular deste modelo em rede, o modelo hierárquico, limita as relações a uma estrutura semelhante a uma árvore (hierarquia - tronco, galhos), ao invés do modelo mais geral direcionado por [[teoria dos grafos|grafos]].


{{msg:emtraducao2}}
{{msg:emtraducao2}}

Edição das 02h11min de 15 de julho de 2004

Bancos de dados são arquivos ou sistemas com uma estrutura regular que organizam informações. Essas estruturas podem ter a forma de uma tabela: cada tabela é composta por linhas e colunas. As informações utilizadas para um mesmo fim são agrupadas em uma base de dados.

Em sistemas computacionais, bases de dados são gerenciadas por um sistema de gestão de bancos de dados, ou SGBD. A apresentação dos dados pode ser semelhante à de uma planilha eletrônica, porém os sistemas de gestão de banco de dados possuem características especiais para o armazenamento, classificação e recuperação dos dados.

Existe uma grande variedade de bancos de dados, desde exemplos simples como uma simples coleção de tabelas até um modelo teoricamente definido, o relacional.

Os banco de dados são diferenciados por muitas características. A mais útil e usada é o modelo de programação.

O modelo plano, ou tabular, é basicamente uma matriz bi-dimensional de elementos de dados na qual todos os membros de uma dada columa possuem valores similares, e todos os membros de uma linha estão relacionados entre si. Por exemplo, um banco de dados para segurança do sistema pode ter colunas de nome e de senha. Cada linha deve ter a senha específica associada a um usuário específico. Freqüentemente, as colunas de uma tabela possuem um tipo de dados associado, definindo-as como dados de caractere, informações de data ou hora, números inteiros ou em ponto flutuante.

O modelo em rede amplia o modelo de tabela permitindo a adição de múltiplas tabelas. Um tipo de coluna de tabela pode ser definido como uma referência a uma ou mais entradas de uma tabela diferente. Assim, as tabelas são relacionadas por meio de referências, o que pode ser visualizado como uma estrutura de rede. Um subconjunto particular do modelo de rede, o modelo hierárquico, limita os relacionamentos a uma estrutura de árvore, ao contrário da estrutura aplicada pelo modelo de rede completo.

Os bancos de dados relacionais são constituídos não de tabelas, mas de três componentes: uma coleção de estruturas de dados, a saber relações; um conjunto de operadores, a saber a álgebra e o cálculo relacionais; e um conjunto de restrições de integridade que definem os conjuntos de estados e mudanças de estado consistentes do banco de dados.

Diferentemente dos bancos de dados em rede, os relacionamentos entre as tabelas não são codificadas explicitamente na sua definição. Em vez disso, se faz implicitamente pela a presença de atributos de mesmo tipo. Como resultado, bancos de dados relacionais podem ser reorganizados e utilizados de maneira flexível e de formas não previstas pelos projetistas originais. Por causa dessa flexibilidade, muitos bancos de dados são baseados no modelo relacional, embora imperfeitamente, especificamente o SQL.

Todos os tipos de bancos de dados podem ter seu desempenho aumentado pelo uso de índices. O tipo mais comum de índice é uma lista ordenada dos valores de uma coluna de uma tabela, contendo ponteiros para as linhas associadas a cada valor. Um índice permite que o conjunto das linhas de uma tabela que satisfazem determinado critério sejam localizadas rapidamente. Há vários métodos de indexação utilizados comumente, como árvores B, hashes e listas encadeadas.

Em anos recentes, o modelo da orientação a objeto vem sendo aplicado também aos bancos de dados, criando um novo modelo de programação conhecido como bancos de dados orientados a objeto. Os objetos são valores definidos segundo classes, ou tipos de dados, com seus próprios operadores (métodos). Com o passar do tempo, os sistemas gestores de bancos de dados orientados a objeto e SQL se aproximaram. Muitos sistemas orientados a objeto são implementados sobre bancos de dados SQL.

Os bancos de dados são utilizados em muitas aplicações, abrangendo praticamente todo o campo dos programas de computador. Os bancos de dados são o método de armazenamento preferencial para aplicações multiusuário, nas quais é necessário haver coordenação entre vários usuários. Entretanto, são convenientes também para indivíduos, e muitos programas de correio eletrônico e organizadores pessoais baseiam-se em tecnologias padronizadas de bancos de dados.

Um banco de dados é um conjunto de informações com uma estrutura regular. Um banco de dados é normalmente, mas não necessariamente, armazenado em algum formato de máquina lido pelo computador. Há uma grande variedade de bancos de dados, desde de simples tabelas armazenadas em um único arquivo até gigantescos bancos de dados com muitos milhões de registros, armazenados em salas cheias de discos rígidos.

Bancos de dados caracteristicamente modernos são desenvolvidos desde os anos da década de 1960. Um pioneiro nesse trabalho foi Charles Bachman.

A maneira mais prática de classificar bancos de dados é de acordo com o modelo de programação associado ao banco de dados. Diversos modelos foram utilizados ao longo da história, por determinados períodos. Historicamente, o modelo de bancos de dados hierárquico foi implementado primeiro; então surgiu o modelo de bancos de dados em rede; daí o modelo de bancos de dados relacional surgiu e ganhou destaque, acompanhado daquilo que é chamado modelo plano (tabular) para fins mais diretos e simples. Os dois primeiros e o último nunca foram descritos teoricamente, e são classificados como modelos de dados unicamente em contraste com o modelo relacional (que tem uma teoria de suporte). Esses três modelos sem teoria própria surgiram basicamente a partir de estruturas e modelos de programação, não modelos de dados.

Modelos de banco de dados

O modelo plano (ou tabular) consiste de matrizes simples, bidimensionais, compostas por elementos de dados; todos os membros de uma determinada coluna devem ter valores similares, e todos os membros de uma linha são presumivelmente relacionados. Por exemplo, colunas com nome do usuário e senha podem ser usadas como parte de um sistema de dados de segurança. Cada coluna deverá ter uma senha específica relacionada com o usuário específico, registrado naquela mesma linha. Colunas de uma tabela geralmente têm um tipo de dado associado a elas, definindo se ali serão registrados dados alfanuméricos, datas ou horas, inteiros, números reais, etc. Este modelo plano é a base das planilhas eletrônicas.

O modelo em rede permite que várias tabelas sejam usadas simultâneamente através do uso de apontadores (ou referências). Algumas colunas contém apontadores para outras tabelas ao invés de dados. Assim as tabelas são ligadas por referências, o que pode ser visto como uma rede. Uma variação particular deste modelo em rede, o modelo hierárquico, limita as relações a uma estrutura semelhante a uma árvore (hierarquia - tronco, galhos), ao invés do modelo mais geral direcionado por grafos.

Predefinição:Emtraducao2

Relational databases consist not of tables, but of three components: a collection of data structures, namely relations, sometimes incorrectly identified with tables; a collection of operators, the relational algebra and calculus; and a collection of integrity constraints, defining the set of consistent database states and changes of state. The integrity constraints can be of four types: domain (AKA type), attribute, relvar and and database constraints.

Unlike the hierarchical and network models, there are no pointers whatsoever, according to the Information Principle: all information must be represented as data values; attributes of any type represent relationships between relations. Relational databases allow users (including programmers) to write queries that were not anticipated by the database designer. As a result, relational databases can be used by multiple applications in ways the original designers did not foresee, which is especially important for databases that might be used for decades. This has made relational databases very popular with businesses.

The relational model is a mathematical theory developed by Ted Codd to describe how relational databases should work. Although this theory is the basis for relational database software, very few database management systems actually follow the model very closely and all have features violating the theory, thus increasing complexity and subtracting power. Therefore they should not be called relational DBMSs, but SQL (or some other language) ones.

Implementations and indexing

All of these kinds of database can take advantage of indexing to increase their speed. The most common kind of index is a sorted list of the contents of some particular table column, with pointers to the row associated with the value. An index allows a set of table rows matching some criterion to be located quickly. Various methods of indexing are commonly used, including b-trees, hashes, and linked lists are all common indexing techniques.

Relational and SQL DBMS have the advantage that indexes can be created or dropped without changing existing applications, because applications don't use the indexes directly. Instead, the database software decides on behalf of the application which indexes to use. The database chooses between many different strategies based on which one it estimates will run the fastest.

Mapping objects into databases

In recent years, the object-oriented paradigm has been applied to databases as well, creating a new programming model known as object databases. These databases attempt to overcome some of the difficulties of using objects with the SQL DBMSs. An object-oriented program allows objects of the same type to have different implementations and behave differently, so long as they have the same interface (polymorphism). This doesn't fit well with a SQL database where user-defined types are difficult to define and use, and where the Two Great Blunders prevail: the identification of classes with tables (the correct identification is of classes with types, and of objects with values), and the usage of pointers.

A variety of ways have been tried for storing objects in a database, but there is little consensus on how this should be done. Implementing object databases undo the benefits of relational model by introducing pointers and making ad-hoc queries more difficult. This is because they are essentially adaptations of obsolete network and hiearchical databases to object-oriented programming. As a result, object databases tend to be used for specialized applications and general-purpose object databases have not been very popular. Instead, objects are often stored in SQL databases using complicated mapping software. At the same time, SQL DBMS vendors have added features to allow objects to be stored more conveniently, drifting even further away from the relational model.

Applications of databases

Databases are used in many applications, spanning virtually the entire range of computer software. Databases are the preferred method of storage for large multiuser applications, where coordination between many users is needed. Even individual users find them convenient, though, and many electronic mail programs and personal organizers are based on standard database technology.

Database application

A database application is a type of computer application dedicated to managing a database. Database applications span a huge variety of needs and purposes, from small user-oriented tools such as an address book, to huge enterprise-wide systems for tasks like accounting.

The term "database application" usually refers to software providing a user interface to a database. The software that actually manages the data is usually called a database management system (DBMS) or (if it is embedded) a database engine.

Examples of database applications include Microsoft Access, dBASE, FileMaker and (to some degree) HyperCard.

In March, 2004, AMR Research (as cited in the CNET News.com article listed in the "References" section) had predicted that open source database applications would come into wide acceptance in 2006.

Transactions and concurrency

In addition to their data model, most practical databases attempt to enforce a database transaction model that has desirable data integrity properties. Ideally, the database software should enforce the ACID rules:

  • Atomicity - either all or no operations are completed. (Transactions that can't be finished must be completely undone.)
  • Consistency - all transactions must leave the database in consistent state.
  • Isolation - transactions can't interfere with each other's work and incomplete work isn't visible to other transactions.
  • Durability - successful transactions must persist through crashes.

In practice, many DBMS's allow some of these rules to be relaxed for better performance.

Concurrency control is a method used to ensure transactions are executed in a safe manner and follows the ACID rules. The DBMS must be able to ensure only serializable, recoverable schedules are allowed, and that no actions of committed transactions are lost while undoing aborted transactions.

See also

References

de:Datenbank eo:Datumbazo fr:Base de données nl:Database ja:データベース pl:Baza danych ro:Bază de date sv:Databas uk:База даних zh:数据库

talvez você goste