Articles

Microsoft SQL Server vs. Oracle: O mesmo, mas diferente?

Posted on
Partilhar no FacebookTweet sobre isto no TwitterPartilhar no LinkedIn
Escrito por Josh Stansfieldon a 13 de Março, 2014
Compartilhar no FacebookTweet sobre isto no TwitterPartilhar no LinkedIn

Existem muitos sistemas diferentes de gestão de bases de dados relacionais (RDBMS) por aí. Provavelmente já ouviu falar do Microsoft Access, Sybase, e MySQL, mas os dois mais populares e amplamente utilizados são Oracle e MS SQL Server. Embora existam muitas semelhanças entre as duas plataformas, existem também algumas diferenças chave. Neste blog, vou dar uma vista de olhos a várias em particular, nas áreas da sua linguagem de comando, como lidam com o controlo de transacções e a sua organização de objectos de bases de dados.

Linguagem

Talvez a diferença mais óbvia entre as duas RDBMS seja a linguagem que utilizam. Embora ambos os sistemas utilizem uma versão da Structured Query Language, ou SQL, o MS SQL Server utiliza Transact SQL, ou T-SQL, que é uma extensão da SQL originalmente desenvolvida pela Sybase e utilizada pela Microsoft. A Oracle, entretanto, utiliza PL/SQL, ou Procedureural Language/SQL. Ambos são diferentes “sabores” ou dialectos de SQL e ambas as linguagens têm diferentes sintaxes e capacidades. 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. Na minha humilde opinião, PL/SQL é complexo e potencialmente mais poderoso, enquanto o T-SQL é muito mais simples e fácil de usar.

Transaction Control

Outra das maiores diferenças entre Oracle e MS SQL Server é o controlo das transacções. Para os fins deste artigo, uma transacção pode ser definida como um grupo de operações ou tarefas que devem ser tratadas como uma única unidade. Por exemplo, uma colecção de consultas SQL modificando registos que devem ser todos actualizados ao mesmo tempo, onde (por exemplo) uma falha na actualização de qualquer registo único entre o conjunto deve resultar na não actualização de nenhum dos registos. Por defeito, o MS SQL Server executará e submeterá cada comando/tarefa individualmente, e será difícil ou impossível reverter as alterações se forem encontrados quaisquer erros ao longo do caminho. Para agrupar correctamente as declarações, o comando “BEGIN TRANSACTION” é utilizado para declarar o início de uma transacção, e ou uma declaração COMMIT é 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. Quando devidamente utilizado com tratamento de erros, o ROLLBACK permite algum grau de protecção contra a corrupção de dados. Depois de um COMMIT ser emitido, não é possível retroceder mais do que o comando COMMIT.

Within Oracle, por outro lado, cada nova ligação de base de dados é tratada 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 na memória e nada é cometido até que seja dada uma declaração explícita de COMMIT (com algumas excepções relacionadas com os comandos DDL, que incluem commits “implícitos”, e são cometidos imediatamente). 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 é submetida ao disco até que o DBA emita explicitamente o comando para o fazer.

Organização de Objectos de Base de Dados

A última diferença que quero discutir é como o RDBMS organiza os objectos de base de dados. O MS SQL Server organiza todos os objectos, tais como tabelas, vistas, e procedimentos, por nomes de bases de dados. Os utilizadores são atribuídos a um login que é concedido acesso à base de dados específica e aos seus objectos. Além disso, no SQL Server cada base de dados tem um ficheiro de disco privado, não partilhado, no servidor. No Oracle, todos os objectos da base de dados são agrupados por esquemas, que são uma colecção subconjunta de objectos da base de dados e todos os objectos da base de dados são partilhados entre todos os esquemas e utilizadores. Embora tudo seja partilhado, cada utilizador pode ser limitado a certos esquemas e tabelas através de funções e permissões.

p>Em suma, tanto o Oracle como o SQL Server são opções RDBMS poderosas. Embora haja uma série de diferenças na forma como funcionam “debaixo da capota”, ambas podem ser utilizadas de formas aproximadamente equivalentes. Nenhuma delas é objectivamente melhor que a outra, mas algumas situações podem ser mais favoráveis a uma determinada escolha. Seja como for, a Segue pode apoiar estes sistemas e ajudar a fazer recomendações sobre como melhorar, actualizar, ou manter a sua infra-estrutura chave de missão crítica para garantir que pode manter o seu foco no negócio.

Need Help? Contacte-nos

Deixe uma resposta

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