Articles

Guerras de bases de dados: MSSQL Server, Oracle PL/SQL e MySQL

Posted on

Com tantas bases de dados no mercado, as guerras mentais começaram e é o momento certo para compreender a diferença e a importância das 3 principais bases de dados relacionais do mercado – Microsoft SQL Server, Oracle PL/SQL, e MySQL. Os sistemas de gestão de bases de dados relacionais tornaram-se actualmente a espinha dorsal da indústria e, com tantas opções disponíveis, é difícil descobrir qual escolher.

Os sistemas de gestão de bases de dados relacionais foram introduzidos nos anos 80. Este artigo centra-se na exploração da história e das características de três RDBMS populares na indústria: Microsoft SQL Server, Oracle, e MySQL. Sendo Microsoft SQL Server e Oracle o software comercial, MySQL é o RDBMS de código aberto.

Oracle foi a primeira empresa a trazer RDBMS para uso comercial nos anos 80. Em meados da década de 1990, a Microsoft entrou no mercado com o SQL Server como um concorrente sério da Oracle. O MySQL, por outro lado, foi originalmente desenvolvido e distribuído como um software de código aberto. O MySQL foi lançado pela primeira vez em 1995, e a versão Windows foi lançada em 1998. Em 2008, foi adquirida pela SUN e posteriormente pela Oracle.

The Language – Heart of Communication

The backbone of any RDBMS is the language used to execute the queries and that is how their performance and implementation is impactted. Embora os três sistemas de gestão de bases de dados utilizem uma versão da Structured Query Language (Linguagem Estruturada de Consulta), ou SQL. Microsoft SQL Server utiliza Transact-SQL, ou T-SQL, que é uma extensão do SQL originalmente desenvolvido pela Sybase e utilizado pela Microsoft. Enquanto que a Oracle, entretanto, usa PL/SQL, ou Procedural Language/SQL.

Both são diferentes “sabores” ou dialectos de SQL e ambas as linguagens têm uma sintaxe e capacidades ligeiramente diferentes. A principal diferença entre as duas linguagens é a forma como lidam com variáveis, procedimentos armazenados, e funções incorporadas. PL/SQL em Oracle pode também agrupar procedimentos em pacotes, o que não pode ser feito em MS SQL Server. PL/SQL pode ser um pouco mais complexo e potencialmente mais potente, enquanto o T-SQL é muito mais simples e mais fácil de implementar.

MySQL, por outro lado, utiliza a versão leve do T-SQL e também combina linguagem processual que está intimamente relacionada com SQL/PSM. No entanto, os objectos de código armazenados do MySQL estão próximos das normas ANSI, mas mais uma vez, não têm a amplitude e profundidade do T-SQL, a extensão proprietária da Microsoft e da Sybase para SQL.

Transaction Control

Uma transacção pode ser considerada como um grupo de operações que são executadas como uma única unidade. Por exemplo, se o utilizador estiver a tentar executar algumas consultas SQL, então ou todas são executadas ou nenhuma. Esta é uma das maiores diferenças entre Oracle e MS SQL Server em referência ao controlo de transacções.

Por defeito, MS SQL Server executará e submeterá cada comando/tarefa individualmente, e será difícil ou impossível retroceder as alterações se algum erro aparecer pelo caminho. O comando “BEGIN TRANSACTION” é utilizado para agrupar correctamente as declarações e declarar o início de uma transacção, e uma declaração COMMIT pode ser utilizada no final. Esta declaração COMMIT escreverá os dados alterados em disco, e terminará a transacção. Dentro de uma transacção, ROLLBACK descartará quaisquer alterações feitas dentro do bloco de transacção. Depois de um COMMIT ser emitido, não é possível retroceder mais do que o comando COMMIT.

Onde em Oracle, cada nova ligação à base de dados é tomada como uma nova transacção. À medida que as consultas são executadas e os comandos são emitidos, as alterações são feitas apenas em memória da base de dados e permanecem em cache. Nada é comprometido até que seja dada uma declaração explícita de COMMIT. Após o COMMIT, o próximo comando emitido inicia essencialmente uma nova transacção, e o processo começa de novo. Isto proporciona maior flexibilidade e ajuda também no controlo de erros, uma vez que nenhuma alteração é cometida no disco até que o comando COMMIT seja explicitamente executado.

No caso do MySQL, o suporte de transacções é facilmente compatível com o InnoDB. InnoDB é um motor de armazenamento para MySQL e, por defeito, está disponível com MySQL. Fornece as características de transacção padrão compatíveis com ACID, juntamente com o suporte de chaves estrangeiras.

Organização de objectos de base de dados

A organização de objectos de base de dados é também um grande diferenciador nestas 3 bases de dados. O MS SQL Server organiza todos os objectos, tais como tabelas, vistas, e procedimentos, por nomes de bases de dados. Os utilizadores do MS SQL são atribuídos a um login, ao qual é concedido acesso às bases de dados específicas e também aos seus objectos. No Microsoft SQL Server, cada base de dados tem um ficheiro de disco privado, não partilhado no servidor.

Onde no Oracle, todos os objectos da base de dados são agrupados por esquemas. Os esquemas não são mais do que as estruturas de bases de dados que são um subconjunto de objectos de bases de dados. Todos os objectos da base de dados são partilhados entre todos os esquemas e utilizadores. Mesmo sendo todos partilhados, os papéis e permissões para cada utilizador são definidos e o mesmo pode ser limitado a certos esquemas e tabelas.

p> Em suma, todos os três, MySQL, Oracle e SQL Server, são opções RDBMS poderosas. Embora haja uma série de outras diferenças na forma como funcionam “debaixo da capota” e são implementadas, podem ser utilizadas de uma forma aproximadamente quase equivalente. Cada uma pode ser utilizada com objectivos diferentes em ambientes diferentes. A finalidade pode ser a mesma, mas a implementação varia.

raja

Publicado em 16-Jan-2020 12:26:19

Advertisements

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *