Alura > Cursos de Data Science > Cursos de SQL e Banco de Dados > Conteúdos de SQL e Banco de Dados > Primeiras aulas do curso Oracle Database: manipulando dados com comandos DML

Oracle Database: manipulando dados com comandos DML

Modelagem de um banco de dados - Apresentação

Boas-vindas ao curso de Oracle Database: manipulando dados com comandos DML da Alura. Me chamo Victorino Vila e serei o seu instrutor. Esse curso faz parte da formação Oracle.

Victorino Vila é um homem de pele clara, olhos castanhos e cabelos e barba grisalhos. Está com uma camiseta branca com um símbolo estampado ao centro. Ao fundo, uma parede azul-clara lisa sem decorações.

Comandos DML

O que são os comandos DML?

Os comandos DML (Data Manipulation Language, em português "Linguagem de Manipulação de Dados") são as instruções de atualização e manutenção da base de dados. A manutenção é referente a criação de tabelas e de todos os componentes que a envolvem, como inserir, alterar e excluir dados.

Sobre o curso

Tópicos:

Como transformamos os dados de uma empresas em um banco de dados. Temos uma metodologia por trás, que inclusive temos cursos sobre ela na Alura, chamada de modelagem relacional.

formação Modelagem de dados

Uma pessoa analista DBA (responsável pelo banco de dados) recebe um documento informando quais tabelas, colunas e campos devem ser gerados. Além disso, é passado quais são as chaves primárias e estrangeiras dessas tabelas.

Você pode se perguntar: mas como foi criado esse banco de dados? Como esses dados foram transformados em um banco de dados?

Partindo desse problema, vamos pegar um exemplo prático e gerar um banco de dados. Para isso, criamos tabelas e todos os objetos que a envolvem: as chaves primárias e estrangeiras, os tipos dos campos baseado em um desenho de banco de dados (o analista que passou esses dados do mundo real para o banco de dados que nos passou).

Com o banco de dados criado, o nosso próximo passo será incluir dados na tabela. Aprenderemos como inserir esses dados linha a linha, em bloco ou vindos de arquivos externos (planilhas de Excel ou arquivos de texto).

Logo após, passamos para o tópico de alterar e excluir os dados das tabelas. Vamos aprender que é possível remover dado a dado, ou alteração e exclusão em blocos, inclusive, sincronizando dados baseados em outras tabelas.

Em seguida passamos para a transação do Oracle. Há cenários em que desejamos retroceder os dados que incluímos, alteramos ou excluímos das tabelas. Se a transação do Oracle for bem gerenciada, é possível gerar pontos de visualização (de congelamentos da base) e, assim, tudo o que fizermos a partir desse determinado ponto e desistirmos posteriormente podemos remover e voltar ao ponto em que estávamos.

Por fim, vamos entender sobre os campos de auto incremento, valores default padrões para campos. Além disso, temos a funcionalidade triggers na Oracle, que são os gatilhos que executam instruções a partir de um determinado evento quando esse evento ocorre no banco de dados.

Vamos aprender tudo isso ao longo desse curso. Espero que você goste e aprenda muito. Um abraço e até mais!

Modelagem de um banco de dados - Banco de dados e o mundo real

No curso de consultas SQL que fizemos na formação Oracle, criamos e carregamos um esquema de forma quase que automática. Fizemos essa carga para treinar os comandos de consulta de dados.

Analisando de fora, o surgimento desses esquemas foi automático, sem muitos questionamentos de como ele surgiu e nem o motivo pelo qual foi criado. Entretanto, esses esquemas foram projetados para suportar um processo produtivo que corresponde a algo na vida real, seja de uma fábrica, de uma fazendo ou processo operacional de um hospital ou de negócio ligado, por exemplo, à área de serviços.

O banco de dados criado irá dar suporte a um sistema ou software fundamental no controle de um processo que existe na vida real.

Contudo, esse projeto não foi gerado de forma automática, há toda uma metodologia por trás que precisamos seguir a fim de projetar o banco de dados que corresponde a um sistema da vida real.

Na área de TI há profissionais especializados que estudam para compreender uma atividade econômica e reproduzir as suas características no banco de dados. Porém, independente de como é essa metodologia de transformação, o projeto final do banco de dados deve respeitar três características fundamentais.

Características de um banco de dados

A primeira é o que os profissionais chamam de representação de um mini mundo. Isto é: é justamente a característica que ele deve representar algo do mundo real. As mudanças ocorridas no mini mundo devem ser refletidas no conteúdo do banco de dados.

Quando vamos ao supermercado, por exemplo, e compramos algum produto, estamos dentro de um mini mundo. Onde o banco de dados projetado representa a ida a um supermercado na vida real (retirando um item da prateleira, levando ao caixa e levando para a casa).

Essa ação que ocorreu no mini mundo irá refletir no banco de dados, gerando algum tipo de alteração de dados em uma ou mais tabelas.

Outra característica é que o banco de dados deve armazenar uma coleção coerente de dados com algum significado. Uma quantidade de dados armazenados de forma dispersa, sem nenhuma correspondência, não pode ser chamada de banco de dados. E a outra característica é que esse banco de dados é projetado para uma determinada finalidade bem definida.

Geralmente, o banco de dados está associado a um grupo de usuários e a um conjunto de aplicações que foram previamente concebidas para fazer determinadas ações, nos quais esses usuários estão interessados.

Um banco de dados projetado para controlar, por exemplo, prontuários médicos, não vai servir nunca para ajudar a controlar o processo produtivo de fabricação de um produto na indústria. Cada banco de dados tem o seu propósito.

Banco de dados

Em suma, um banco de dados deve possuir uma fonte de dados, o qual os dados são derivados, com algum grau de interação com algo relacionado com o mundo real e que existam pessoas interessadas em manipular e gerenciar os dados do banco de dados, ou seja, gerenciar e consultar o seu conteúdo.

Esse processo de transformação do mini mundo em um banco de dados possui regras e técnicas para serem aplicadas a fim de finalizar o projeto de um banco de dados.

Para entendermos com detalhes sobre esse assunto, teríamos que dedicar um curso ou mais cursos específicos somente para tratar isso. Não é o nosso caso aqui, porém não vou deixá-los sem conhecimento breve desse assunto. Nos próximos vídeos dessa aula, vamos resumir essas técnicas de forma bem superficial e didática para que vocês entendam como eu transformo os dados do mini mundo em um banco de dados.

Até mais!

Modelagem de um banco de dados - Diagrama de entidades e relacionamentos

Nesse vídeo, vamos falar sobre o projeto de banco de dados.

Análise dos requisitos

O primeiro passo que precisamos seguir a fim de criar um banco de dados é preparar uma análise dos requisitos do mini mundo que consiste em:

Precisamos entender as regras de negócio envolvidas no processo operacional da empresa na qual estamos modelando para construir o banco de dados. Para ter esse entendimento, precisamos aprender e a melhor forma de fazer isso é conversando com as pessoas envolvidas nesse processo.

Essas conversas são efetuadas por meio entrevistas aliadas à experiência ou conhecimento prévio que a pessoa com a função de analista que projeta o banco de dados já tem em modelos de negócio semelhantes. Depois de muito tempo, existe vasta literatura que apresenta desenhos e projetos de banco de dados para diversas áreas específicas.

Por exemplo, um banco de dados para controlar o financeiro e a contabilidade de uma empresa vai ter sempre um desenho muito semelhante, independente do tipo da empresa. Já existiram pessoas que se dedicaram para projetar diversas versões de banco de dados sobre um determinado assunto até chegar a um desenho próximo do ideal.

Com todo esse entendimento, a pessoa analista vai representar todo esse modelo de regras de negócio de forma gráfica. Esse passo de representar em forma gráfica ainda não é o projeto do banco de dados e sim uma representação gráfica do mini mundo no qual o banco de dados vai estar sendo projetado.

Modelo conceitual

Esse desenho desse mini mundo chamamos de modelo conceitual que consiste na criação de um diagrama, que por sua vez se chama diagrama de entidades e relacionamentos.

Entre essas tais entidades que fazem parte do diagrama, devemos estabelecer a cardinalidade entre elas.

O diagrama de entidades e relacionamentos e a representação da cardinalidade entre essas entidades é o que chamamos de representação gráfica do modelo conceitual.

Este desenho vai ser a tradução das regras de negócio obtidas com levantamento feito com as pessoas usuárias da empresa e transformadas em um diagrama gráfico. Dependendo da forma com que você desenha esse diagrama, haverá uma correspondência quase direta entre o diagrama e os elementos do banco de dados.

Diagrama de entidades e relacionamentos

Vamos entender como traduzimos as regras de negócio no diagrama. Primeira, é preciso identificar as entidades.

Normalmente, definimos as entidades com substantivos contidos na descrição em forma de texto no processo operacional.

Vamos pegar o nosso modelo de vendas. Queremos entender as regras de negócio desse processo. Por exemplo, podemos obter um texto obtido através das entrevistas com as pessoas usuárias:

A empresa produz diversos produtos. São sucos de frutas, chás e águas minerais, nas quais chamamos de categorias. Estas categorias possuem marcas que estão relacionadas com tipos diferentes de produtos. A composição dos produtos está diretamente ligado com uma determinada embalagem e sabor.

Vendemos este produtos a clientes que possuem sedes em cidades e estados do Brasil. Os clientes são atendidos por vendedores que intermediam as vendas. Nossos clientes, dependendo do seu histórico, possuem um limite de crédito e uma quantidade de produtos que podem ser vendidos dentro do mês.

As vendas são registradas através de notas fiscais onde temos um cabeçalho no qual registramos a data de venda, cliente e vendedor que intemediou a venda. Numa nota fiscal o cliente pode comprar diversos itens na mesma operação comercial.

Ao analisar esse texto, podemos identificar as diversas entidades que serão os substantivos do texto acima. Quem pensou que ao escolher a carreira de TI se livraria das regras de português se enganou terrivelmente.

Destacamos os substantivos em negrito no texto. Com isso, podemos dizer que podem ser entidades do modelo de entidades e relacionamentos os substantivos: "empresa", "produtos", "categorias", "marcas", "embalagem", "sabor", "clientes", "vendedores", "cidades", "estados", "notas fiscais" e "itens".

Agora, o próximo passo é identificar as relações, isto é, como essas entidades se relacionam. O que vamos fazer é procurar os verbos dentro do mesmo texto.

Os verbos vão descrever a relação entre as nossas entidades.

Algumas sugestões de verbos foram destacadas em itálico. Por exemplo, "a empresa produz produtos", portanto, há uma relação entre empresa e produto. "As categorias possuem marcas", logo, há uma relação entre categorias e marcas. "Os clientes são atendidos por vendedores", o verbo "atender" identifica uma relação entre cliente e vendedores.

Todos os verbos destacados no texto são: "produz", "possuem", "ligado", "vendemos", "possuem", "atendidos", "registradas", "comprar".

A destacar os substantivos e os verbos, desenhamos uma representação gráfica como essa daqui.

Diagrama de entidades e relacionamentos de um banco de dados. É constituído por 9 quadrados azuis com substantivos das entidades interligados por meio de 7 losangos verdes com verbos dos relacionamentos. Começa com o quadrado azul "Empresa" que se liga ao losango verde "produz". Depois o losango "produz" se liga ao quadrado azul "Categorias/produtos". Essas conexões acontecem com todos os elementos e formam as seguintes frases de relacionamentos das entidades: empresa produz categorias/produtos; categorias/produtos possuem marcas; categorias/produtos ligado a embalagem/sabor; categorias/produtos vende cliente; notas fiscais possuem itens; notas fiscais vende cliente; cliente atendido vendedor; cliente possui estado e cidade.

Essa é uma representação gráfica livre, apenas para que vocês tenham uma noção de como o processo realmente funciona. As entidades são representadas pelos quadrados e cada relacionamento identificado pelo verbo é representado como um losango ligando as entidades.

Por exemplo, temos empresa que produz categorias e produtos. Também temos cliente que possui cidade e estado. Cliente é atendido por vendedor. Perceba como podemos pegar aquele texto onde identificamos os verbos e os substantivos para construir esse diagrama.

Cardinalidade dos relacionamentos

Após o desenho do diagrama de entidades e relacionamentos que foi construído com base nos verbos e substantivos, vamos determinar agora a cardinalidade entre os relacionamentos dessas entidades.

As cardinalidades são definidas por relações numéricas entre as entidades. Eu vou citar dois exemplos mais simples de relacionamento:

Precisamos analisar cada relação entre as entidades e determinar quais dessas cardinalidades mais se adaptam ao mundo real.

Mas o que significa representação 1:N ou N:M?

Vamos apresentar exemplos mais palpáveis para melhor compreensão.

Exemplo 1:N

Por exemplo, o Brasil se divide em estados e, dentro dos estados, temos cidades.

Todo o ESTADO pode ter uma ou mais CIDADES

Nós não podemos ter um estado sem cidades e uma cidade não pode pertencer a dois ou mais estados. Portanto, podemos afirmar que a relação entre cidades e estados é 1:N ou N :1, dependendo de como você desenha o esquema.

Isso significa o seguinte: 1 estado pode ter N (ou seja, várias) cidades, mas as várias cidades só podem ter 1 estado.

Exemplo N:M

Agora vamos a outro exemplo. Preste atenção à relação entre clientes e produtos. Todo cliente pode comprar vários produtos e todo produto pode ser vendido para vários clientes.

Todo CLIENTE pode comprar vários PRODUTOS

Todo PRODUTO pode ser vendido para vários CLIENTES

Esse tipo de relação chamamos de N:M, ou seja, é uma relação que não tem uma ligação direta. Não há uma identificação prévia entre cliente e produto. A relação é de N:M ou M:N, novamente dependendo de como você quer desenhar seu esquema.

Outros tipos de cardinalidades

Existem outros tipos de cardinalidades e relações que somente um curso mais especializado sobre isso poderia falar. Para não deixar de mencionar, temos as cardinalidades de:

Além de infinitas combinações entre números e letras que podem representar diferentes cardinalidades.

Cardinalidade no diagrama de entidades e relacionamentos

Logo, no nosso diagrama de entidades e relacionamentos, representamos as cardinalidades dentro dos losangos para poder dizer como cada entidade se relaciona.

Diagrama de entidades e relacionamentos de um banco de dados como descrito anteriormente. Agora, cada losango possui um verbo de relacionamento e uma cardinalidade. A cardinalidade de cada relacionamento de entidades é: empresa produz categorias/produtos (1:N); categoria/produto possuem marcas (1:N); categorias/produtos ligado a embalagem/sabor (N:1); categorias/produtos vende cliente (N:M); notas fiscal possuem itens (1:N); notas fiscais vende cliente (N:M); cliente atendido vendedores (1:N); clientes possui estado e cidade (N:1).

Ressaltamos novamente que usamos apenas uma representação ilustrativa sem representar o modelo real.

Porém, vamos mostrar para vocês o que seria um modelo real de entidades e relacionamentos.

Diagrama de entidade e relacionamentos de um banco de dados real. É constituído por 4 quadrados que representam as entidades "funcionário", "departamento", "projeto" e "dependente". Cada entidade é interligada por meio de 6 losangos que representam relacionamentos. Os relacionamentos das entidades formam as seguintes frases: funcionário supervisiona funcionário (0:N e 0:1); funcionário trabalha_em projeto (1:N e 1:N); funcionário trabalha_para departamento (1:1 e 4:N); departamento gerencia funcionário (1:1 e 0:1); departamento controla projeto (0:N e 1:1); dependente dependem_de funcionário (0:N e 1:1). O quadrado "dependente" e o losango "dependem_em" são duplos. Além disso, cada algumas entidades e relacionamentos possui elipses que representam suas propriedades. A entidade "funcionário" possui as seguintes propriedades: "nome" (dividido em "primeiro_nome", "nome_meio" e "último_nome"), "endereço", "data_nascimento", "salário", "CPF" e "sexo". A entidade "departamento" possui as seguintes propriedades: "nome", "localizações", "número" e "número_de_funcionários". A entidade "projeto" possui as seguintes propriedades: "nome", "localização" e "número". A entidade "dependente" possui as seguintes propriedades: "nome", "sexo", "data_nascimento", "parentesco". O relacionamento "gerencia" possui a propriedade "data_início". O relacionamento "trabalha_em" possui a propriedade "hora".

Esse é um exemplo de um modelo de entidades e relacionamentos de um processo de uma empresa que implementa projetos de consultoria em diferentes empresas.

Perceba que o desenho é um pouco mais detalhado. Existem alguns elementos gráficos que vocês não conheceram nas minhas representações mais simplificadas, mas podemos identificar aqui os quadrados representando as entidades, os losangos representando os relacionamentos.

Também temos algumas outros elementos representados por eclipses, que são as propriedades das entidades.

Além disso, existem relacionamentos representados por losangos simples ou losangos duplos. Isso tem a ver com relacionamentos fortes ou fracos. Similarmente, temos entidades representadas por quadrados simples ou quadrados duplos, que também tem a ver com entidades fortes ou fracas.

Enfim, reiteramos que nosso foco não é entrar detalhadamente nesse assunto. Mas, a partir dessas explicações, vocês entenderem um pouco como é que um mundo real é projetado no diagrama de entidades e relacionamentos.

No próximo vídeo, vamos falar sobre como projetamos o banco de dados com base no diagrama de entidades e relacionamentos. Um abraço e até o próximo vídeo.

Sobre o curso Oracle Database: manipulando dados com comandos DML

O curso Oracle Database: manipulando dados com comandos DML possui 276 minutos de vídeos, em um total de 67 atividades. Gostou? Conheça nossos outros cursos de SQL e Banco de Dados em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda SQL e Banco de Dados acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas