Um banco de dados é um conjunto de arquivos relacionados entre si que contêm registros sobre pessoas, lugares ou coisas. Ex: lista telefônica. Banco de dados em papel são ineficientes e caros de manter, muitas vezes contêm dados desatualizados, são lentos e dificultam o acesso imediato aos dados. E ainda são inflexíveis. Entidades são categorias genéricas que representa uma pessoa, lugar ou coisa. Atributos são características específicas das entidades. Ex.: entidade=cliente, atributos=endereço, telefone, e-mail, etc. Banco de dados relacional é o tipo de banco de dados mais comum hoje em dia. Organizam dados em tabelas bidimensionais, com colunas e linhas. Cada atributo de um fornecedor é armazenado como um campo individual dentro da tabela fornecedor (colunas). A informação específica a respeito de um fornecedor é denominada linha (registros ou tuplas). Campo-chave: atribui uma identificação exclusiva a cada registro, permitindo que ele seja recuperado, atualizado e ordenado. Cada tabela de um banco de dados relacional tem um campo designado chave-primária, que é o identificador exclusivo para todas as informações em qualquer linha da tabela, e essa chave primária não pode ser duplicada. Chave estrangeira: quando a chave primária de uma tabela aparece em outra tabela, e serve como um campo de pesquisa, interrelacionando as tabelas. Em um banco de dados relacional, as tabelas podem ter relacionamentos um-para-um, umpara-muitos ou muitos-para-muitos. Exs.: Um-para-um: quando o RH precisa armazenar dados confidenciais sobre os funcionários.Um-para –muitos: relação entre as entidades fornecedor/peça, onde cada fornecedor pode fornecer mais de uma peça, mas cada peça tem apenas um fornecedor. Sempre que existe uma relação muitos-paramuitos entre duas tabelas, é necessário combinar essas duas tabelas em uma única tabela que reúna tais informações. Para tanto, podemos criar uma tabela separada para um Item no pedido. Essa tabela muitas vezes é denominada tabela concatenada ou relação de intersecção. O processo de simplificar grupos complexos de dados a fim de minimizar elementos de dado redundantes e relações muitos-para-muitos inadequadas, e ao mesmo tempo aumentar a instabilidade e a flexibilidade, chama-se normalização. É um tipo de software específico usado para criar, armazenar, organizar e acessar dados a partir de um banco de dados. O Microsoft Access é um DBMS para computadores pessoais, o DB2, o Oracle e o Microsoft SQL Server são DBMS para grandes mainframes e computadores de médio porte. O MYQL é um popular DBMS de código-fonte aberto, enquanto o Oracle Database Lite é um DBMS para pequenos dispositivos digitais de mão. O DBMS livra o programador ou usuário final da tarefa de entender onde e como os dados estão realmente armazenados, separando as visões lógica e física dos dados. A visão lógica apresenta os dados tais como seriam vistos por usuários ou especialistas da empresa, e a visão física mostra como eles estão realmente organizados e estruturados nos meios de armazenamento físico. No banco de dados relacional 3 operações básicas são utilizadas para desenvolver conjuntos de dados úteis: select, project e join (selecionar, projetar e vincular). A operação select cria um subconjunto formado de todos os registros (linhas) da tabela que obedecerem a critérios estabelecidos. A operação join combina as tabelas relacionais para fornecer ao usuário mais informações do que aquelas à disposição nas tabelas individuais. A operação project cria um subconjunto composto de colunas de uma tabela que permite ao usuário criar novas tabelas contendo apenas as informações requisitadas. Um DBMS possui recursos e ferramentas para organizar, administrar e acessar os dados do banco de dados. Os mais importantes são o recurso de definição de dados, o dicionário de dados e a linguagem de manipulação de dados. Os DBMS têm um recurso de definição de dados para especificar a estrutura do conteúdo do banco de dados. Esse recurso pode ser usado para criar tabelas de banco de dados e para definir as características dos campos em cada tabela. Tais informações sobre o banco de dados costumam ser documentadas no dicionário de dados. O dicionário de dados é um arquivo, manual ou automatizado, que armazena as definições dos elementos de dado e suas características. A linguagem de manipulação de dados é usada para acrescentar, alterar, apagar e recuperar os dados do banco de dados. A mais usada hoje é a linguagem estruturada de consulta ou SQL. Normalmente, os DBMS incluem recursos para geração de relatórios, de maneira que os dados de interesse possam ser mostrados em um formato mais refinado e estruturado do que permitiria uma consulta simples. Muitas aplicações, hoje e no futuro, exigirão bancos de dados que possam armazenar e recuperar desenhos, imagens, fotografias, voz e vídeo com movimento. O DBMS convencional não é adequado para tratar aplicações baseadas em recursos gráficos ou multimídia. Banco de dados orientados a objetos são mais apropriados para tal finalidade. Ele armazena dados e procedimentos como se fossem objetos que podem ser automaticamente extraídos e compartilhados. Estão se tornando comuns porque podem ser usados para gerenciar vários componentes multimídia ou applets Java em aplicativos Web, que costumam integrar informações de uma variedade de fontes. Embora possam armazenar tipos mais complexos de informação do que os DBMS relacionais, são relativamente lentos quando se trata de processar grandes quantidades de transações. Sistemas híbridos DBMS relacionais orientados a objetos já estão disponíveis para prover recursos de DBMS orientados a objeto e relacionais.