𝖂𝖎ƙ𝖎𝖊

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

imported>PauloColacino
Sem resumo de edição
imported>PauloColacino
Sem resumo de edição

Edição das 17h40min de 29 de março de 2004

Bancos de Dados são informações organizadas em um estrutura regular.

Essas estruturas pode ter a forma de uma tabela. Cada tabela é composta por linhas e colunas. As tabelas que são utilizadas para um mesmo fim são agrupadas em uma base de dados.

Em sistemas computacionais, as bases de dados são gerenciadas por um sistema de banco de dados. A apresentação dos dados é semelhante a uma planilha eletrônica porém os sistemas de gerenciamento de banco de dados possuem características especiais para o armazenamento, classificação e recuperação dos dados.

Um banco de dados é uma coleção de informações que é organizada para pesquisa e utilização flexíveis. Existe uma grande quantidade de bancos de dados, desde exemplos simples como uma simples coleção de tabelas até modelos mais complexos como os modelos de banco de dados relacional.

Os tipos de banco de dados são diferenciados por muitas características. Uma característica comumente utilizada é o modelo de programação associado com o banco de dados. Muitos modelos vem sendo largamente usados há algum tempo.

O modelo flat (ou de tabela) é 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 associado a elas, 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.

Os bancos de dados relacionais são semelhantes aos bancos de dados em rede, já que podem conter várias tabelas. Entretanto, diferentemente dos bancos de dados em rede, as relações entre as tabelas não são codificadas explicitamente na definição das tabelas. Em vez disso, o relacionamento entre as tabelas se faz implicitamente pela a presença de colunas com nomes e tipos idênticos. Um modelo matemático conhecido como cálculo relacional fornece um conjunto de operações consistentes que podem ser executadas nesses bancos de dados. Como resultado, bancos de dados relacionais podem ser reorganizados e reutilizados de maneira flexível e de formas não previstas pelos projetistas originais. Muitos bancos de dados pessoais e comerciais usam o modelo relacional por causa dessa flexibilidade.

Todos esses tipos de bancos de dados podem ter seu desempenho aumentado pelo uso de índices. Um í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 b-trees, hashes e listas encadeadas.

Em anos recentes, o paradigma 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 muito semelhantes às linhas de uma tabela de outros modelos; as colunas de uma tabela são muito semelhantes às definições de dados incluidas como parte de uma definição de classe de objeto. Além disso, o banco de dados orientado a objeto contém comportamentos armazenados, que podem ser disparados no momento em que determinadas operações são executadas sobre o objeto. Com o passar do tempo, os bancos de dados orientados a objeto e os bancos de dados relacionais tornaram-se similares. Hoje, os sistemas orientados a objeto são, muitas vezes, implementados sobre os alicerces formados por um banco de dados relacional.

Os bancos de dados são utilizados em muitas aplicações, abrangendo praticamente todo o campo do software. 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, os bancos de dados são convenientes também para usuários individuais, e muitos programas de correio eletrônico e organizadores pessoais baseiam-se em tecnologias padronizadas de bancos de dados.

Predefinição:Emtraducao2

Databases resembling modern versions were first developed in the 1960s. A pioneer in the field was Charles Bachman.

One way of classifying databases is by the programming model associated with the database. Several models have been in wide use for some time. Historically, the hierarchical model was implemented first, then the network model, then the relational model and flat models reached their zeniths.

Database models

The flat (or table) model consists of a single, two-dimensional array of data elements, where all members of a given column are assumed to be similar values, and all members of a row are assumed to be related to one another. For instance, columns for name and password might be used as a part of a system security database. Each row would have the specific password associated with a specific user. Columns of the table often have a type associated with them, defining them as character data, date or time information, integers, or floating point numbers. This model is the basis of the spreadsheet.

The network model allows multiple tables to be used together though the use of pointers (or references). Some columns contain pointers to different tables instead of data. Thus, the tables are related by references, which can be viewed as a network structure. A particular subset of the network model, the hierarchical model, limits the relationships to a tree structure, instead of the more general directed graph structure implied by the full network model.

Relational databases also consist of multiple database tables. Unlike the hierarchical and network models, there are no explicit pointers; in theory, columns of any type may be used to create an ad-hoc relationship between two or more tables. Relational databases allow users (or, more often, 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 databases actually follow the model very closely and almost all have features contradicting the theory.

Implementations and indexing

All of these kinds of database can take advantage of indexing to increase their speed. An 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.

A relational DBMS has 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 relational model. 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 relational database where all rows in a table have exactly the same columns and the columns are directly accessible.

A variety of ways have been tried for storing objects in a database, but there is little consensus on how this should be done. Some ways of implementing object databases appear to undo the benefits of relational model by introducing pointers and making ad-hoc queries more difficult. As a result, object databases tend to be used for specialized applications and general-purpose object databases have not been very popular commercially. Instead, objects are often stored in relational databases using complicated mapping software. At the same time, relational database software 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