SQL Server의 Architecture

    1. History

    1987년 Sybase라는 Database 개발업체의 작품

    2. Integration with Windows NT

    그럼 왜 Windows NT에 설치하여 사용하는 것이 권장될까요?

    ▣ 보안

    SQL Server는 Windows NT의 보안체제와의 강력하게 통합되어 있기 때문에, 더불어 Windows NT의 강력한 보안체제를 마치 자신의 보안체제처럼 사용할 수 있습니다.

    ▣ 멀티프로세서의 지원

    SQL Server는 Windows NT에서 제공하는 대칭형 다중프로세서의 기능을 지원합니다.

    ▣ 이벤트 뷰어

    SQL Server는 발생되는 이벤트에 대해서 Windows NT의 응용 프로그램 로그에 기록을 하게 됩니다. 문제점 발생 및 추적에 대한 일관된 기능을 제공함으로써 MSSQL의 문제 발견 및 관리를 더욱 쉽게 할 수 있도록 하고 있습니다.

    ▣ Window NT의 Service

    Window NT의 제어판 - 서비스에서 그 기능을 이용할 수도 있습니다.

    ▣ 성능 모니터

    SQL Server는 사용자로 하여금 SQL Server의 시스템 성능을 감시할 수 있도록 성능 모니터 기능을 제공합니다.

    MSSQL의 성능을 모니터링 할 수 있으며, 동시에 Windows NT의 성능도 모니터링 하거나 로그파일로도 남길 수 있습니다.


     

    3. Integration with Microsoft BackOffice

    SQL Server Microsoft Backoffice와도 통합된 환경을 제공합니다. 이는 SQL Server가 단독의 데이터베이스 서버로서의 서비스 제공이라기 보다는 운영체제와 다른 어플리케이션과의 통합을 통하여 확장성 있는 서버로서의 기능을 제공하는 것입니다.

    Internet Information Server(IIS)를 통하여 인터넷 사용자가 SQL Server에도 접근을 할 수 있으며, Exchange Server를 통해서 e-mail을 주고 받을 수도 있고, 또한 SNA protocol을 사용하여 IBM 환경(IBM Mainframe, AS/400)과도 연결이 가능합니다.

     

    4. SQL Server Services

    SQL Server

    • MSSQL Server
    • SQLServerAgent
    • Microsoft Distributed Transaction Coordinator
    • Microsoft Search

    제공한다.

     

    ▣ MSSQL Server Service

    MSSQL Server Service는 SQL Server의 엔진에 해당하는 서비스입니다. 이는 SQL Server를 시작하거나 일시정지, 정지시키는 역할을 담당하고 있습니다.

    서버에 연결된 동시 사용자들 사이에 컴퓨터의 자원을 할당하고, 동시성 제어 등과 같은 논리적인 문제점을 제어하고, 데이터의 일치성과 무결성을 보장하는 기능을 제공합니다.

     

    ▣ SQLServerAgent

    SQL Server Agent는 로컬 또는 다중 서버의 jobs(작업), alerts(경고), operators(작업자) 등을 생성하고 관리하는 작업을 수행합니다.

    • 작업(jobs) : 일정한 기간 단위로 실행해야 할 작업을 지정한다. 예를 들어 주단위의 백업작업 등을 작업에 등록하여 자동으로 실행할 수 있도록 할 수 있으며, 그 작업의 수행결과의 여부를 전자우편이나 메시지를 통해 사용자(operator)에게 전달할 수도 있습니다.
    • 경고(alerts) : SQL Server에서 일어나는 이벤트에 대한 경고 메시지를 말합니다.
    • 작업자(operator) : SQL Server의 각종 이벤트를 전할 작업자를 말합니다.

     

    ▣ Microsoft Distributed Transaction Coordinator Service

    MS DTC Service는 트랜젝션을 조정하는 기능을 가지고 있습니다. 사용자로 하여금 여러 개의 다른 데이터 원본을 하나의 트랜젝션으로 포함할 수 있게 하며, 분산된 환경에서의 데이터의 변경에 대한 무결성을 보장하도록 합니다.

     

    ▣ Microsoft Search Service

    Microsoft Search Service는 Windows NT 상에서 수행되는 full-text engine입니다. 이는 단순한 character형 데이터의 검색이 아닌 텍스트에 대한 질의를 지원하는 기능을 말합니다. 즉 비정형화된 형식으로 저장된 데이터인 텍스트에 대한 질의에 효율적인 결과반환을 위한 검색 서비스라고 할 수 있습니다.

     

     

     

     

    1. Client/Server Architecture

    전통적인 (2-tier) C/S System이 개발되고 실제 기업에서 사용하다 보니 시스템을 운용하는데 있어서 문제점이 발생되기 시작하였습니다. 사용자의 요구에 의해서 이런 기능, 저런 기능을 포함하다 보니, 사용자들 사이의 프로그램마다 서로 다른 버전을 가지고 있어 서로 다른 업무규칙이 적용되는 경우가 빈번히 발생되었고, 사용자의 컴퓨터에 있는 프로그램의 크기가 너무 커져버려서(Fat Client) 결국은 프로그램의 실행속도가 너무 느리게 되는 단점이 발생되었습니다. 이를 해결하기 위해서 아래의 그림에서 보는 것처럼 Middle Ware개념을 도입하기 시작하였습니다. 업무를 처리하는 대부분의 기능을 Middle Ware Server에 두고 사용자의 컴퓨터에는 사용자에게 보여주는 화면에 대한 처리만을 저장하도록 하여, 업무에 대한 변경이나 사용자의 변경요구가 있을 경우에는 Middle Ware의 업무처리 루틴(Business Logic, 업무규칙 이라고 합니다.)만을 변경하여, 동시에 모든 사용자에게 동일한 업무규칙을 적용할 수 있게 하고, 사용자의 컴퓨터는 더 이상의 변경이 필요 없게 하였습니다.


    2. Database Architecture

    데이터베이스는 어떻게 저장이 될까 하는 의문을 가졌던 기억이 있습니다.

    SQL Server Database Architecture는 실질적으로 데이터를 저장하기 위한 물리적인 부분과 데이터를 외부에 보여주기 위한 논리적인 부분으로 나뉘어져 있습니다.

    이쯤에서 눈치가 빠르신 분은 데이터베이스의 3단계 구조(Schema)를 떠 올리시는 분이 계실텐데요.. . 관련지어 생각해보시죠.

    SQL Server는 데이터를 사용자에게 보여주기 위해서 데이터들을 논리적인 구성요소로 구성하여 데이터베이스 상에 만들어 놓습니다. 이런 것들에는 차후에 설명하게 될 View, Table, Stored Procedure 등이 있습니다.

    이렇게 정의된 논리적인 정의들은 실제 물리적인 파일에 저장되게 되는데, 하나의 파일이 아닌 복수개의 파일의 형식으로 저장됩니다.

     

    3. Server Architecture

    Server Component는 Client로부터 요청되어진 SQL문장을 받아서 해석하고 적절한 처리를 하여, 결과를 다시 Client로 반환(제공, Serve)하는 역할을 합니다.

    이러한 서버 측에서 이루어지는 작업에 대한 행위를 정의하는 것이 Server Architecture입니다.

     

    4. Administration Architecture

    사실 Microsoft에서는 MSSQL Server는 "그냥 놔두어도 좋다"라고 할 정도로 데이터베이스 관리에 대한 부분의 자동화에 많은 노력을 기울였다고 할 수 있습니다.

    SQL Server는 거의 대부분의 관리부분이 GUI(Graphic User Interface)로 구성되어 있고, 간단한 설정만으로 관리를 가능하게 하였습니다.

     

    5. Replication Architecture

    복제의 목적은 보통 서버 시스템의 하위 시스템으로의 분산, 엔터프라이즈 환경에서의 투명성 등입니다. 때문에 단순한 복사 서비스와는 달리, 모든 데이터베이스의 데이터의 일치성을 위한 특별한 기술이 첨가되어 있습니다.

    서비스의 적용 범위가 지역 인트라넷에서부터 전세계적인 인터넷에 이르기까지 다양합니다.

     

    6. Client Architecture - Application Development Architecture

    Client는 Server로 데이터에 대한 요청을 하는 존재라고 설명을 하였습니다. 그렇다면 어떻게 요청을 할까요?

    Database API는 Application에서 Database로 연결하는 방법과 Database에 명령을 전달하는 방법을 정의해 놓은 것입니다. API Model은 주로 사용되는 언어에 의존하지 않으며, Objects, Property, Interface 등으로 정의 되어 있습니다.

    Active X Data Objects(ADO). OLE DB, ODBC(Open Database Connectivity), RDO(Remote Data Objects), DAO(Data Access Objects), Embedded SQL for C(ESQL), DB-Library for C, DB Library for Visual Basic 등이 있습니다.

     

    또 다른 하나의 Component는 Database Language 입니다.

    Database로 보내어지는 명령에 대한 문법을 정의하여 놓은 것이 Database Language입니다. SQL Server에 의해서 지원되는 Database 언어는 Transact-SQL입니다.



'RDBMS(mysql,mssql)' 카테고리의 다른 글

[MSSQL] 6.Table  (0) 2018.08.01
[MSSQL] 5.Database 구성요소  (0) 2018.07.30
[MSSQL] 4.T-SQL  (0) 2018.07.30
[MSSQL] 2.Data Modeling  (0) 2018.07.27
[MSSQL] 1.Database System  (0) 2018.07.27

+ Recent posts