Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

데이터베이스 전쟁:MSSQL 서버, Oracle PL/SQL 및 MySQL

<시간/>

시장에 데이터베이스가 너무 많기 때문에 마인드 전쟁이 시작되었으며 시장에서 상위 3개 관계형 데이터베이스(Microsoft SQL Server, Oracle PL/SQL 및 MySQL)의 차이점과 중요성을 이해해야 할 적기입니다. 관계형 데이터베이스 관리 시스템은 현재 업계의 근간이 되었으며 사용할 수 있는 옵션이 너무 많아 어떤 것을 선택해야 할지 파악하기 어렵습니다.

관계형 데이터베이스 관리 시스템은 1980년대에 도입되었습니다. 이 기사는 업계에서 널리 사용되는 세 가지 RDBMS인 Microsoft SQL Server, Oracle 및 MySQL의 역사와 기능을 탐구하는 데 중점을 둡니다. Microsoft SQL Server와 Oracle은 상용 소프트웨어이고 MySQL은 오픈 소스 RDBMS입니다.

데이터베이스 전쟁:MSSQL 서버, Oracle PL/SQL 및 MySQL

Oracle은 1980년대에 상업용으로 RDBMS를 출시한 최초의 회사였습니다. 1990년대 중반에 Microsoft는 Oracle의 심각한 경쟁자로 SQL Server와 함께 시장에 진입했습니다. 반면 MySQL은 원래 오픈 소스 소프트웨어로 개발 및 배포되었습니다. MySQL은 1995년에 처음 출시되었고 Windows 버전은 1998년에 출시되었습니다. 2008년에는 SUN에, 이후에는 Oracle에 인수되었습니다.

언어 – 커뮤니케이션의 핵심

모든 RDBMS의 백본은 쿼리를 실행하는 데 사용되는 언어이며 쿼리의 성능과 구현이 영향을 받는 방식입니다. 세 가지 데이터베이스 관리 시스템 모두 구조적 쿼리 언어(SQL) 버전을 사용하지만. Microsoft SQL Server는 원래 Sybase에서 개발하고 Microsoft에서 사용하는 SQL의 확장인 Transact-SQL 또는 T-SQL을 사용합니다. 반면 Oracle은 PL/SQL 또는 Procedural Language/SQL을 사용합니다.

둘 다 SQL의 다른 "맛" 또는 방언이며 두 언어 모두 구문과 기능이 약간 다릅니다. 두 언어의 주요 차이점은 변수, 저장 프로시저 및 내장 함수를 처리하는 방법입니다. Oracle의 PL/SQL은 프로시저를 패키지로 그룹화할 수도 있는데, 이는 MS SQL Server에서 수행할 수 없습니다. PL/SQL은 좀 더 복잡하고 잠재적으로 더 강력할 수 있지만 T-SQL은 훨씬 더 간단하고 구현하기 쉽습니다.

데이터베이스 전쟁:MSSQL 서버, Oracle PL/SQL 및 MySQL

반면 MySQL은 라이트 버전의 T-SQL을 사용하며 SQL/PSM과 밀접하게 관련된 절차적 언어도 결합합니다. 그러나 MySQL의 저장된 코드 개체는 ANSI 표준에 가깝지만 T-SQL, Microsoft 및 Sybase의 SQL에 대한 독점 확장의 폭과 깊이가 없습니다.

거래 통제

트랜잭션은 단일 단위로 실행되는 작업 그룹이라고 할 수 있습니다. 예를 들어, 사용자가 일부 SQL 쿼리를 실행하려고 하면 모두 실행되거나 실행되지 않습니다. 이것은 트랜잭션 제어와 관련하여 Oracle과 MS SQL Server의 주요 차이점 중 하나입니다.

기본적으로 MS SQL Server는 각 명령/작업을 개별적으로 실행하고 커밋하며, 도중에 오류가 발생하면 변경 사항을 롤백하는 것이 어렵거나 불가능합니다. "BEGIN TRANSACTION" 명령은 명령문을 적절하게 그룹화하고 트랜잭션의 시작을 선언하는 데 사용되며 마지막에 COMMIT 명령문을 사용할 수 있습니다. 이 COMMIT 문은 변경된 데이터를 디스크에 쓰고 트랜잭션을 종료합니다. 트랜잭션 내에서 ROLLBACK은 트랜잭션 블록 내에서 이루어진 모든 변경 사항을 삭제합니다. COMMIT가 실행된 후에는 COMMIT 명령보다 더 이상 롤백할 수 없습니다.

데이터베이스 전쟁:MSSQL 서버, Oracle PL/SQL 및 MySQL

반면 Oracle에서는 각각의 새 데이터베이스 연결이 새 트랜잭션으로 간주됩니다. 쿼리가 실행되고 명령이 실행되면 변경 사항은 데이터베이스의 메모리에서만 이루어지고 캐시에 남아 있습니다. 명시적 COMMIT 문이 제공될 때까지 아무것도 커밋되지 않습니다. COMMIT 후에 발행된 다음 명령은 기본적으로 새 트랜잭션을 시작하고 프로세스가 다시 시작됩니다. COMMIT 명령이 명시적으로 실행될 때까지 변경 사항이 디스크에 커밋되지 않으므로 유연성이 향상되고 오류 제어에도 도움이 됩니다.

MySQL의 경우 트랜잭션 지원이 InnoDB와 쉽게 호환됩니다. InnoDB는 MySQL용 스토리지 엔진이며 기본적으로 MySQL에서 사용할 수 있습니다. 외래 키 지원과 함께 표준 ACID 호환 트랜잭션 기능을 제공합니다.

데이터베이스 개체의 구성

데이터베이스 개체의 구성도 이 3가지 데이터베이스의 큰 차별화 요소입니다. MS SQL Server는 테이블, 뷰 및 프로시저와 같은 모든 개체를 데이터베이스 이름으로 구성합니다. MS SQL 사용자는 로그인에 할당되며 이 로그인에는 특정 데이터베이스 및 해당 개체에 대한 액세스 권한이 부여됩니다. Microsoft SQL Server에서 각 데이터베이스는 서버에 공유되지 않은 개인 디스크 파일을 가지고 있습니다.

반면 Oracle에서는 모든 데이터베이스 개체가 스키마별로 그룹화됩니다. 스키마는 데이터베이스 개체의 하위 집합 모음인 데이터베이스 구조에 불과합니다. 모든 데이터베이스 개체는 모든 스키마와 사용자 간에 공유됩니다. 모두 공유하더라도 각 사용자에 대한 역할과 권한이 정의되어 있으며 특정 스키마와 테이블에 대해서도 동일하게 제한될 수 있습니다.

<블록 인용>

요컨대, MySQL, Oracle 및 SQL Server의 세 가지 모두 강력한 RDBMS 옵션입니다. "내부에서" 작동하고 구현하는 방식에는 여러 가지 다른 차이점이 있지만 거의 동일한 방식으로 사용할 수 있습니다. 각각은 다른 환경에서 다른 목적으로 사용할 수 있습니다. 목적은 같을 수 있지만 구현은 다릅니다.