검수요청.png검수요청.png

"엠에스에스큐엘"의 두 판 사이의 차이

해시넷
이동: 둘러보기, 검색
(참고자료)
(참고자료)
63번째 줄: 63번째 줄:
 
*아무것도아닌것이아닌,〈[https://m.blog.naver.com/PostView.nhn?blogId=ted1lee&logNo=220612369811&proxyReferer=https:%2F%2Fwww.google.com%2F MSSQL의 파일 구조]〉, 《네이버 블로그》, 2016-01-29
 
*아무것도아닌것이아닌,〈[https://m.blog.naver.com/PostView.nhn?blogId=ted1lee&logNo=220612369811&proxyReferer=https:%2F%2Fwww.google.com%2F MSSQL의 파일 구조]〉, 《네이버 블로그》, 2016-01-29
 
*도깨비,〈[https://m.blog.naver.com/PostView.nhn?blogId=rocabilly&logNo=140133522180&proxyReferer=https:%2F%2Fwww.google.com%2F MSSQL 일반 - 함수란? ( 스칼라,테이블 반환함수( 인라인, 다중 문 ) )]〉, 《네이버 블로그》, 2011-07-07
 
*도깨비,〈[https://m.blog.naver.com/PostView.nhn?blogId=rocabilly&logNo=140133522180&proxyReferer=https:%2F%2Fwww.google.com%2F MSSQL 일반 - 함수란? ( 스칼라,테이블 반환함수( 인라인, 다중 문 ) )]〉, 《네이버 블로그》, 2011-07-07
*똑똑이,〈[https://blog.naver.com/PostView.nhn?blogId=wideeyed&logNo=221434457477 [MSSQL] SQL Server 소개 및 설치방법 on Windows]〉, 《네이버 블로그》, 2019-01-04
+
*똑똑이,〈[https://blog.naver.com/PostView.nhn?blogId=wideeyed&logNo=221434457477 (MSSQL) SQL Server 소개 및 설치방법 on Windows]〉, 《네이버 블로그》, 2019-01-04
 
*kideagle,〈[https://kideagle.tistory.com/93 MSSQL 버젼 확인 및 버젼별 정보]〉,《티스토리》,2016-05-11
 
*kideagle,〈[https://kideagle.tistory.com/93 MSSQL 버젼 확인 및 버젼별 정보]〉,《티스토리》,2016-05-11
 
*찌니,〈[https://m.blog.naver.com/PostView.nhn?blogId=ecaface&logNo=221379856348&proxyReferer=https:%2F%2Fwww.google.com%2F MSSQL 버전별 차이점]〉,《네이버 블로그》,2018-10-18
 
*찌니,〈[https://m.blog.naver.com/PostView.nhn?blogId=ecaface&logNo=221379856348&proxyReferer=https:%2F%2Fwww.google.com%2F MSSQL 버전별 차이점]〉,《네이버 블로그》,2018-10-18

2020년 8월 4일 (화) 12:17 판

엠에스에스큐엘(MS-SQL)
엠에스에스큐엘(MS-SQL)

엠에스에스큐엘(MS-SQL)은 미국 마이크로소프트사에서 개발한 관계형 데이터베이스 관리 시스템(RDBMS)이다. 마이크로소프트 에스큐엘 서버(Microsoft SQL Server)라고도 한다. 윈도우(Windows) 기반의 아이아이에스(IIS) 서버에서 주로 사용한다. 주로 영어로 MS-SQL이라고 쓰지만, 중간에 옆줄을 빼고 MSSQL이라고 쓰기도 한다.

개요

엠에스에스큐엘은 일종의 운영자가 웹브라우저를 관리 함에 있어 사용자의 회원관리라던지, 쇼핑몰에서 물품목록을 리스트별로 볼수 있도록 구현을 해주고 데이터베이스(Database)관리를 해주는 마이크로소프트(Microsoft)사에서 만든 웹디비(WebDatabase)다. 웹상에서 회원들을 관리 할때 회원들의 정보를 디비에 저장했다가 디비에서 회원들의 정보를 다시 불러와서 리스트 형식으로 출력해주는 역할을 한다. 그리고 쇼핑몰에서 사용자가 물건을 주문했다라던지 물건을 반품시켰다라던지 이러한 일련의 과정들을 웹상에서 확인할수 있도록 구현해 주는게 웹디비라고 할 수 있다.[1]

등장배경

데이터베이스가 사용되기 이전에는 파일시스템을 통해 데이터가 유지되고 있었다. 그러나 파일을 기반으로 데이터 관리를 하게되면 중복 데이터가 발생하고 중복된 데이터 간 불일치가 발생하는 등 데이터로서의 무결성 문제가 발생하였다. 그리고 시스템 또는 프로그램이 파일 구조에 영향을 받는 형태가 되어 유지보수가 복잡하고 어려운 문제점도 있었다. 이러한 파일시스템의 문제점을 극복하기 위해서 데이터베이스가 고안되었다. 데이터베이스는 파일 형태로 흩어져 있던 데이터를 하나로 모아 관리하고 다수의 사용자들이 정보에 접근할 수 있어야 한다는 관점 하에 설계되었다. 초창기에는 계층형, 네트워크형 데이터베이스가 사용되었으나 현재는 관계형(Relational) 데이터베이스가 주를 이루고 있으며 노에스큐엘(NoSQL) 계열의 데이터베이스의 사용도 점차 늘어가고 있다.[2]

특징

  • 윈도우NT(Windows NT)와의 결합으로 엔티 서버에서 지원하는 모든 하드웨어 구조에서 완벽하게 지원한다. NT상에서는 에스큐엘(SQL) 서버가 서비스로서 동작하는데, 제어판-서비스 부분을 보면 된다. 윈9x에서는 어플리케이션(Application)의 개념으로 동작을 한다. NT에 최적화 되어 있으며 윈98 설치시 게임이나 사운드 카드, 비디오카드와의 충돌 등 많은 문제를 가질 수 있다.
  • NT 도구와 연동된다. 에스큐엘서버에서 사용하는 거의 대부분의 프로세스(Process)를 윈도우NT에서 모니터링이 가능하다. 특히 NT 성능 모니터에서의 모듈인은 아주 섬세한 부분의 모니터링과 튜닝까지의 연계도 가능해진다. 아울러 에스큐엘서버 자체내에 로그 시스템으로 오류를 분석하며 오류의 설정으로 NT 이벤트 로그에도 사용이 가능해진다. 에스큐엘서버의 인증방식은 두 가지로 에스큐엘 서버(Server)와 윈도우NT 인증과 Windows NT only 인증이 있다. 기본 세팅은 1번 인증이고, NT 서버의 인증 체계를 그대로 사용이 가능하다.
  • 집중화된 서버 관리로 분산된 기업환경에서의 집중된 서버 관리 도구를 제공한다. NT는 텔넷(Telnet) 인증이 없다. 그러나 에스큐엘 서버는 Enterprise Manager라는 관리 툴로 원격지의 서버를 등록(Register)후 완전한 관리가 가능하다. 그 외에도 간편한 Linked서버를 이용하는 방식과 OLE-DB를 이용해 Open Rowset으로 쉽게 접근이 가능해 진다.
  • 데이터베이스 관리 시스템(DBMS)에 의한 데이터 무결성의 지원이다. 트랜잭션(transaction) 기반으로 완전한 무결성을 구축이 가능하다.
  • 다양한 분산 데이터 처리기능을 지원한다. 정보의 배포를 위한 내장된 복제 기능이 있고, 적시에 정확한 정보를 필요한 사람에게 제공한다. 상당히 범용적인 복제 전략을 구축이 가능해지며, 대용량 데이터베이스를 지원한다.[3]

장점과 단점

엠에스에스큐엘의 장점으로는 데이터베이스 관리 시스템(DBMS, Database Management System)의 툴인 Microsoft SQL Server Management Studio의 사용이 매우 편리하고 잘 만들어져 있다. 많은 기능들이 마법사로 구성되어 있어 에스큐엘(SQL)을 몰라도 백업, 튜닝, 스케줄, 레플리케이션(복제)등의 관리가 가능하다. 엠에스에스큐엘 디비(DB)는 결과값에 대한 멀티 레코드셋을 지원해서 개발에 편리함을 준다. 버전이 올라갈수록 편리한 기능을 추가해 주는 등이 있고 단점으로는 가격정책이 일괄적이지 못하다는것과 어느 사용시점부터는 비용이 많이 들어간다. 또한 버전(version)이 올라갈수록 새로운 기능이 추가되는것과 같이 새로운 형태로 발표되어 기존 사용자들이 따라가기 쉽지 않다는 이유 등이 있다.[4]

파일 구조

  • 물리적인 파일: 엠에스에스큐엘의 물리적 파일은 기본적으로 두가지가 있다. 데이터 파일은 실제 데이터가 들어가는 파일이고, 이 파일은 MDFNDF로 나뉜다. MDF는 처음으로 생성되는 데이터 파일이고 NDF는 두번째부터 생성되는 데이터 파일이다. 데이터 파일을 여러 개로 나누는 경우는 성능을 위해서다. 로그 파일은 로그를 기록하는 파일이고 LDF가 있다. 엠에스에스큐엘 서버에서의 디비(DB) 파일은 두개의 이름을 가지고 있다. OS사에서 볼 수 있는 물리적 파일 이름과, 이 물리적 파일을 관리하기 위한 논리적 파일 이름을 가지고 있다. 이 논리적 파일의 이름은 주로 데이터베이스 관리 시스템(DBMS)가 자체로 사용한다.
  • 데이터 파일의 논리적인 구조: 데이터 파일의 속에 논리적인 구조는 페이지(Page), 페이지가 여러 개 모인 익스텐트, 익스텐트가 여러개 모여 파일(file)이 된다. 익스텐트는 8개의 페이지가 합쳐져서 만들어진 단위다. 하나의 페이지는 8KB 크기를 가지며, 이 파일 8개가 모여서 익스텐트가 되므로, 익스텐트의 크기는 64KB 이다. 익스텐트의 종류중 하나인 믹스드 익스텐트는 하나의 익스텐트 안에 여러 개 테이블의 페이지가 혼합되어 들어 있는 것 이고, 유니폼 익스텐트는 하나의 익스텐트 안에 하나의 테이블의 페이지만 들어 있는 익스텐트다. 기본적으로 엠에스에스큐엘 서버(Server)는 테이블이 생성되고 페이지가 생성될 때 믹스드 익스텐트에 페이지를 생성한다. 따라서, 데이터 파일을 최초에 만들면 익스텐트는 믹스드 익스텐트가 생성이 된다.
  • 특수한 페이지: GAM(Global Allocation Map)은 어떤 익스텐트가 할당 사용되었는지를 알려주는 페이지이다. SGAM(Shared Global Allocation Map)은 어떤 익스텐트가 현재 혼합 익스텐트로 사용 되는지와, 적어도 하나 이상의 사용되지 않은 페이지를 가지는지를 알려주는 페이지다. 이 두개의 페이지의 내용으로 에스큐엘 서버는 어느 익스텐트가 할당 되었는지, 믹스드 익스텐트인지, 빈 페이지가 있는지 등등의 정보를 알 수 있다. GAM과 SGAM 두개의 페이지는 각각 4GB의 데이터를 처리 할 수 있다. 이 말은 데이터 파일이 4GB를 넘어서면 그 파일에는 GAM과 SGAM이 두 개씩 있다는 말이다. PFS(Page Free Space)는 페이지의 각각의 페이지가 사용하도록 할당 되었는지 여부와, 각각의 페이지의 빈 공간의 양을 기록한다. 페이지의 빈공간은 비어있음 / 1~50% 채워짐 / 51~80% 채워짐 / 81~95% 채워짐 / 96~100% 채워짐으로 기록한다. 페이지의 빈공간은 텍스트/이미지 페이지에 대해서만 관리한다. 데이터 파일은 페이지로 나뉘어 있는데, 페이지 번호는 0번부터 시작한다. 0번은 파일헤더 페이지, 1번은 PFS 페이지, 2번은 GAM 페이지, 3번은 SGAM 페이지등의 순서대로 페이지가 할당된다.[5]

함수

엠에스에스큐엘 디비(DB) 안에 있는 함수라는 개체는 우리가 프로그램 언어에서 사용한 함수하고 동일하다. 값을 하나만 리턴하는 스칼라 함수 부터 테이블을 반환하는 함수 등이 있다. 함수는 프로그램과 마찬가지로 재사용성을 높이기 위해 만들어 졌다. 성능 쪽에서는 손해를 볼지라도 유지보수 및 개발 시 아주 유용하다. 디비 관련 프로그램에서 저장프로시져, 에스큐엘(SQL) 문 등에서 공통적으로 사용하는 부분들이 있다. 매우 길게 작업되는 내용도 함수쪽에만 그 로직(logic)이 들어가고 결국 사용하는 부분은 단순히 함수명과 인자값, 리턴값만 조절하면 편하게 쓸수 있다. 나중에 로직이 바뀌어도 함수부분만 바꾸면 적용이 되니 매우 효율적인 객체다. 함수는 크게 생성 주체에 따라 시스템 함수, 사용자 함수로 나눈다. 시스템 함수데이터베이스 관리 시스템(DBMS)에서 제공하는 거라 수정할 수는 없고 여러가지 타입이 만들어져 있다. 개발자들이 만들 수 있는 사용자 함수에는 스칼라 함수, 테이블 반환 함수 등 2가지 유형이 있다. 스칼라함수는 단일 데이터를 리턴하는 함수다. 가장 많이 사용되는 함수다. 시스템 함수들 대부분도 스칼라 함수다. 테이블 반환 함수는 말 그대로 리턴값이 테이블이다. 스칼라 함수처럼 하나의 값이 아닌 테이블이다. 리턴되는 테이블에 따라 인 라인 테이블 반환 함수와 다중 문 테이블 반환 함수로 나눌 수 있다.[6]

설치

엠에스에스큐엘을 설치하려면 먼저 개발 및 테스트용 무료 설치 파일을 다운로드한다. 설치유형에는 기본과 사용자 지정이 있지만 기본 구성을 권장한다. 언어를 한국어로 바꾸고 설치가 완료된 인스턴스 이름과 폴더를 확인한다. 디비관리SSMS(SQL Server Management Studio)를 설치한다. 설치가 완료되면 시스템을 재부팅한다. SSMS를 실행한다. 서버이름(기본설치한 경우 윈도에 설정한 PC이름)을 입력하고 연결한다. 이때 Local 서버라면 서버 이름에 . 만 입력해도 연결할 수 있다. 서버이름에 마우스 오른쪽 클릭 후 속성을 클릭하고 서버 속성을 확인한다. 보안 속성을 클릭 후 서버인증, 로그인감사 등을 보안 요구 사항에 맞게 수정한다. 여기까지 하면 모든 설치 및 설정이 완료된다. 그 다음 새 데이터베이스 생성, 새 테이블 생성, 테이블 데이터 조회를 해볼 수 있다. 에스큐엘 서버 기본 인스턴스는 1433 포트를 사용한다.[7]

버전

버전별 제품명
버전 패턴 SQL 제품
12.0.x.x SQL Server 2014
11.0.x.x SQL Server 2012
10.50.x.x SQL Server 2018 R2
10.00.x.x SQL Server 2008
9.00.x.x SQL Server 2005
8.00.x.x SQL Server 2000

서버 속성과 쿼리버전 정보를 확인 할 수 있다.[8]

차이

MSSQL Server Enterprise~Standard Edition은 엠에스에스큐엘 서버의 유료 라인업으로써 가격에 따라 크기와 성능, 기능을 제한한다. 이 제품 군에서 생성된 디비(DB)는 상호 호환되며 낮은 제품 군을 사용하다가도 제품 키만 입력하면 좀 더 높은 제품 군으로 쉽게 업그레이드할 수 있다. 에스큐엘 서버제품으로써 설치가 까다로우며, 설치가 완료된 후에는 항상 에스큐엘 서버엔진으로 sqlserver.exe가 실행되어 디비서버로서 동작하게 된다. MSSQL Server EXpress Edition 은 엠에스에스큐엘 서버의 무료 라인업으로써 학생, 개발자 등 누구라도 설치하고 이용할 수 있다. 엠에스에스큐엘 스탠다드(Standard)에 비해 성능이나 크기, 기능에서 제한이 있지만 데이터베이스 관리 시스템(DBMS)로서 핵심적인 기능들은 모두 포함하고 있다. 마찬가지로 에스큐엘 서버 제품 군이기에 스탠다드 이상의 제품처럼 설치가 까다롭고, 항상 에스큐엘 서버엔진이 상주하며 디비서버로서 동작하게 된다.[9]

각주

  1. 제로, 〈MS-SQL이란? 〉, 《네이버 블로그》, 2007-07-29
  2. 곰씨네 곰씨네 , 〈데이터베이스의 역사와 개념 〉, 《티스토리》, 2017-03-03
  3. 천재소녀 ,〈MS-SQL의 특징〉, 《티스토리》, 2008-10-16
  4. 지구관리대원,〈(MS SQL 강좌) 1. MSSQL DBMS를 알아보자〉, 《네이버 블로그》, 2014-04-07
  5. 아무것도아닌것이아닌,〈MSSQL의 파일 구조〉, 《네이버 블로그》, 2016-01-29
  6. 도깨비, 〈MSSQL 일반 - 함수란? ( 스칼라,테이블 반환함수( 인라인, 다중 문 ) )〉, 《네이버 블로그》, 2011-07-07
  7. 똑똑이,〈(MSSQL) SQL Server 소개 및 설치방법 on Windows〉, 《네이버 블로그》, 2019-01-04
  8. kideagle, 〈MSSQL 버젼 확인 및 버젼별 정보〉, 《티스토리》, 2016-05-11
  9. 찌니, 〈MSSQL 버전별 차이점〉, 《네이버 블로그》, 2018-10-18

참고자료

같이 보기


  검수요청.png검수요청.png 이 엠에스에스큐엘 문서는 데이터에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.