4.1 4.1 - Bancos de dados relacionais.
4.1.1 4.1.1 - Sistemas gerenciadores de banco de dados:
Sistemas gerenciadores de banco de dados (SGBDs) são softwares que permitem criar, manipular e gerenciar bancos de dados de forma eficiente e segura.
Eles são usados em diversas áreas e aplicações, como comércio eletrônico, redes sociais, sistemas de informação geográfica, inteligência artificial e big data.
Eles facilitam o armazenamento, a recuperação, a atualização e a análise de grandes volumes de dados estruturados ou não estruturados. Uma das vantagens dos SGBDs é que eles abstraem os detalhes de como os dados são armazenados fisicamente, permitindo que o usuário se concentre na lógica e na semântica dos dados.
Outra vantagem é que eles garantem a consistência e a confiabilidade dos dados, evitando problemas como duplicação, perda ou corrupção. Além disso, eles facilitam a integração e a comunicação entre diferentes sistemas e usuários, através de padrões e protocolos comuns.
Existem vários tipos de SGBDs, cada um com características próprias, vantagens e desvantagens.
Alguns exemplos de SGBDs são MySQL, Oracle, PostgreSQL, MongoDB e SQL Server.
A escolha do SGBD mais adequado depende do tipo e da complexidade do banco de dados que se deseja implementar.
Os SGBDs podem ser classificados em diferentes categorias, como relacionais, orientados a objetos, hierárquicos, em rede ou NoSQL.
Essas categorias se referem ao modelo lógico usado para representar os dados e as operações possíveis sobre eles.
Por exemplo, os SGBDs relacionais usam tabelas para organizar os dados, enquanto os SGBDs orientados a objetos usam classes e objetos.
Uma comparação entre as categorias pode ser feita considerando aspectos como o grau de normalização, a flexibilidade do esquema, o desempenho das consultas e a escalabilidade dos dados.
Cada categoria tem suas vantagens e desvantagens dependendo do contexto e do objetivo do banco de dados.
Os SGBDs também oferecem recursos como controle de acesso, integridade dos dados, backup e restauração, otimização de consultas e suporte a linguagens de programação.
Em conclusão, os SGBDs são ferramentas essenciais para o gerenciamento de dados em diversos domínios e cenários.
Eles permitem que os usuários criem e manipulem bancos de dados de acordo com suas necessidades e preferências.
4.1.2 4.1.2 - Oracle DataBase.
Oracle é um sistema de gerenciamento de banco de dados relacional que permite armazenar, manipular e recuperar dados de forma eficiente e segura. Oracle é um dos sistemas mais populares e confiáveis do mercado, sendo utilizado por grandes empresas e organizações em diversos setores. Neste texto, vamos ensinar os conceitos básicos de Oracle e como usar suas principais funcionalidades.

## Instalação e acesso ao Oracle

Para começar, você precisa instalar o Oracle Database em seu computador ou servidor, seguindo as instruções do site oficial. Depois de instalado, você pode acessar o Oracle usando uma ferramenta chamada SQL*Plus, que permite executar comandos SQL (Structured Query Language) para interagir com o banco de dados. SQL é uma linguagem padrão para manipular dados em bancos de dados relacionais, e consiste em instruções como SELECT, INSERT, UPDATE, DELETE, entre outras.

## Criação e inserção de dados em tabelas

Um banco de dados Oracle é composto por objetos chamados tabelas, que armazenam os dados em linhas e colunas. Cada tabela tem um nome único e uma estrutura definida por um conjunto de colunas, cada uma com um nome, um tipo de dado e um tamanho. Por exemplo, uma tabela chamada CLIENTES pode ter as colunas ID, NOME, TELEFONE e EMAIL. Cada linha da tabela representa um registro de um cliente, com seus respectivos valores nas colunas. Para criar uma tabela no Oracle, você pode usar o comando SQL CREATE TABLE, especificando o nome da tabela e as colunas com seus atributos. Por exemplo:

CREATE TABLE CLIENTES (
  ID NUMBER(10) PRIMARY KEY,
  NOME VARCHAR2(50) NOT NULL,
  TELEFONE VARCHAR2(15),
  EMAIL VARCHAR2(30) UNIQUE
);

O comando acima cria uma tabela chamada CLIENTES com quatro colunas: ID, NOME, TELEFONE e EMAIL. Cada coluna tem um tipo de dado (NUMBER, VARCHAR2) e um tamanho máximo (10, 50, 15, 30). Além disso, cada coluna pode ter uma ou mais restrições (constraints), que definem regras para os valores que podem ser inseridos na coluna. Por exemplo, a restrição PRIMARY KEY indica que a coluna ID é a chave primária da tabela, ou seja, identifica unicamente cada registro da tabela e não pode ter valores repetidos ou nulos. A restrição NOT NULL indica que a coluna NOME não pode ter valores nulos. A restrição UNIQUE indica que a coluna EMAIL não pode ter valores repetidos.

Para inserir dados em uma tabela no Oracle, você pode usar o comando SQL INSERT INTO, especificando o nome da tabela e os valores das colunas a serem inseridos. Por exemplo:

INSERT INTO CLIENTES (ID, NOME, TELEFONE, EMAIL) VALUES (1, 'Maria', '1111-1111', 'maria@email.com');

O comando acima insere uma nova linha na tabela CLIENTES com os valores 1, 'Maria', '1111- 1111' e 'maria@email.com' nas colunas ID, NOME,
TELEFONE e EMAIL. Você pode inserir quantas linhas quiser na tabela usando o mesmo comando.

## Consulta e manipulação de dados em tabelas

Para consultar dados em uma tabela no Oracle, você pode usar o comando SQL SELECT, especificando as colunas que deseja visualizar e a tabela de onde os dados serão obtidos. Por exemplo:

SELECT ID, NOME FROM CLIENTES;

O comando acima retorna as colunas ID e NOME de todos os registros da tabela CLIENTES. Você pode usar o operador * para retornar todas as colunas da tabela. Por exemplo:

SELECT * FROM CLIENTES;

Você também pode usar cláusulas como WHERE, ORDER BY e GROUP BY para filtrar,
ordenar e agrupar os dados retornados pelo comando SELECT. Por exemplo:

SELECT NOME, EMAIL FROM CLIENTES WHERE TELEFONE IS NULL ORDER BY NOME;

O comando acima retorna as colunas NOME e EMAIL dos registros da tabela CLIENTES que não têm valor na coluna TELEFONE (ou seja,
4.1.2.1 - Conceitos básicos.
O Oracle é um dos sistemas de gerenciamento de banco de dados (SGBD) mais populares e robustos do mercado. Ele oferece recursos avançados para armazenar, manipular e recuperar dados de forma eficiente e segura. Neste texto, vamos apresentar alguns conceitos básicos do Oracle que você precisa conhecer para começar a trabalhar com essa ferramenta.

Um banco de dados Oracle é composto por uma coleção de arquivos que armazenam os dados e as estruturas que os organizam. Esses arquivos incluem:

- Datafiles: arquivos que contêm os dados propriamente ditos, organizados em blocos lógicos chamados segmentos, que por sua vez são divididos em extensões.
- Redo log files: arquivos que registram todas as alterações feitas nos dados, garantindo a recuperação em caso de falhas.
- Control file: arquivo que contém informações sobre a estrutura e o estado do banco de dados, como o nome, o tamanho e a localização dos demais arquivos.
- Archive log files: arquivos que armazenam cópias dos redo log files após eles serem preenchidos, permitindo a recuperação de dados em um ponto específico no tempo.

Além dos arquivos, um banco de dados Oracle também possui uma instância, que é um conjunto de processos e memória que gerenciam o acesso aos dados. A instância é responsável por executar as operações solicitadas pelos usuários, como consultas, inserções, atualizações e exclusões. A instância também realiza tarefas de manutenção, como checkpoint, backup e recuperação.

A memória da instância é dividida em duas áreas principais:

- System Global Area (SGA): área compartilhada por todos os processos da instância, que armazena informações como o cache de dados e instruções SQL, os parâmetros de inicialização e as mensagens internas.
- Program Global Area (PGA): área privada para cada processo da instância, que armazena informações como as variáveis locais, as pilhas de execução e os cursores.

Os processos da instância podem ser classificados em dois tipos:

- Processos em segundo plano: processos que executam funções internas do banco de dados, como o Database Writer (DBWn), que escreve os dados modificados no disco, o Log Writer (LGWR), que grava os redo log files, e o Archiver (ARCn), que copia os redo log files para os archive log files.
- Processos em primeiro plano: processos que atendem às solicitações dos usuários, como o Server Process (SP), que executa as instruções SQL enviadas pelo usuário, e o User Process (UP), que representa a sessão do usuário no banco de dados.

Para se comunicar com o banco de dados Oracle, os usuários precisam estabelecer uma conexão, que é uma comunicação entre um processo de usuário (aplicação ou ferramenta) e uma instância do banco de dados. Uma conexão pode ser feita por meio de diferentes protocolos, como TCP/IP, IPC ou Named Pipes.

Uma vez conectado ao banco de dados Oracle, o usuário pode realizar operações usando a linguagem SQL (Structured Query Language), que é uma linguagem padrão para interagir com bancos de dados relacionais. O SQL permite criar, consultar, modificar e excluir dados, além de definir e controlar o acesso aos objetos do banco de dados.

O Oracle também oferece uma extensão da linguagem SQL chamada PL/SQL (Procedural Language/SQL), que permite criar blocos de código com estruturas procedurais, como variáveis, condicionais, laços e exceções. O PL/SQL é usado para criar objetos como stored procedures, functions, triggers e packages, que facilitam a reutilização e a manutenção do código.

Esses são alguns dos conceitos básicos do Oracle que você precisa saber para começar a usar esse poderoso SGBD. Para saber mais sobre o Oracle, consulte os seguintes recursos:

-  Guia Completo de Oracle: Aprenda tudo sobre Oracle - DevMedia
-  Conceitos Básicos do Oracle Process Automation
-  Conceitos Básicos do Oracle NoSQL Database Cloud Service
-  Software Java | Oracle Brasil
4.1.2.2 - Noções de Administração.
A administração do Oracle Database é uma atividade essencial para garantir o bom funcionamento, a segurança e a otimização dos bancos de dados Oracle. Um administrador de banco de dados (DBA) é o profissional responsável por instalar, configurar, gerenciar e monitorar os bancos de dados Oracle.

Para realizar essas tarefas, o DBA pode usar ferramentas como o SQL*Plus, o Database Express e o SQL Developer. Essas ferramentas permitem ao DBA se conectar ao banco de dados, executar comandos SQL, visualizar informações e realizar ajustes.

O DBA também deve conhecer a arquitetura do Oracle, que envolve conceitos como instância, banco de dados, processos, memória e arquivos. A instância é o conjunto de processos e memória que gerenciam o acesso ao banco de dados. O banco de dados é o conjunto de arquivos que armazenam os dados e os metadados. Os processos são os programas que executam as funções do banco de dados. A memória é o espaço reservado para armazenar as informações temporárias e compartilhadas do banco de dados.

Além disso, o DBA deve saber como criar e excluir bancos de dados, usando o assistente DBCA ou scripts SQL. O DBCA é um programa gráfico que facilita a criação e a configuração do banco de dados. Os scripts SQL são arquivos de texto que contêm os comandos para criar ou excluir o banco de dados.

Para realizar essas tarefas, o DBA deve estar familiarizado com os parâmetros do Oracle, que podem ser definidos localmente ou no servidor, e que influenciam o comportamento e o desempenho do banco de dados.
4.1.2.3 - SQL (Procedural Language/Structured Query Language).
SQL (Procedural Language/Structured Query Language) is a programming language that allows users to manipulate and query data stored in relational databases.
SQL can be used to perform various tasks such as creating tables, inserting records, updating data, deleting data, joining tables, aggregating data, and more.

One of the most popular relational database management systems (RDBMS) that supports SQL is Oracle.

Oracle is a powerful and scalable RDBMS that can handle large amounts of data and complex queries.

Oracle also offers PL/SQL (Procedural Language/SQL), which is an extension of SQL that enables users to write procedural code and create stored procedures, functions, triggers, and packages in SQL.

Triggers are special types of stored procedures that are executed automatically when certain events occur in the database, such as insert, update, or delete operations.