1. 데이터베이스 객체란?
데이터베이스에 저장되는 것들은 일반적으로 잘 아는 테이블 외에 기타 여러가지 것들이 저장됩니다. 이것을 데이터베이스 객체(Database Objects)라고 부릅니다. 물론 이러한 객체들이 데이터베이스를 사용 할 때 필수적이지는 않습니다. 하지만 이러한 객체들을 제대로 이용한다면 많은 편리함을 얻을 수 있습니다.
2. 데이터베이스 객체의 종류
정말 많은 객체들이 존재합니다. 아래에 나열된 객체들에 대해서는 나중에 자세하게 살펴볼 계획입니다. SQL Server에 대한 공부의 대부분이 아래 나열된 객체를 이해하는데 할애 된다고 봐도 과언이 아닙니다. 여기서는 이런것들이 있구나...라고한 이해하셔도 무방합니다.
1) Table
하나 또는 여러 컬럼(Column)들이 모여 하나의 레코드를 이룹니다. 이러한 레코드들이 모여 테이블이 됩니다. 예를 들어 [사원] 테이블은 사번, 이름, 부서 등 여러 컬럼을 갖게 되며 사원수 만큼의 레코드를 갖게 됩니다.
테이블은 시스템테이블과 사용자테이블로 구분 할 수 있습니다. 시스템테이블의 경우는 대부분 SQL Server가 내부적으로 관리를 목적으로 사용되어집니다. 물론 이들 시스템테이블을 참조하면 여러가지 정보를 얻을 수 있지만 시스템테이블을 직접 참조하는 것은 권장되지 않는 방법입니다. 대신 시스템 저장프로시져나 스키마뷰를 이용해서 이러한 정보를 참조할 수 있습니다. 이제 대해서는 나중에 자세히 살펴보도록 하겠습니다.
2) Index
쿼리문을 이용하여 정보를 검색할 때 빠른 수행을 위해서 인덱스를 구성합니다. 물론 빠른 검색 목적 이외에도 데이터의 무결성을 위해서도 사용됩니다. 인덱스에는 Clustered 인덱스와 Non-Clustered 인덱스가 있습니다. 너무나 중요한 개념이므로 나중에 많은 시간을 할애해서 설명할 예정입니다.3) View
뷰는 실제로는 존재하지 않는 가상의 논리적인 테이블입니다. 실제 테이블을 기준으로 사용자 입장에서 논리적인 테이블을 만들어 쉽게 접근 할 수 있게 합니다. 뷰는 사용의 편리성과 보안성을 제공해 줍니다.
4) Stored Procedure
복잡한(단순해도 상관없습니다) 쿼리문을 저장해 두었다가 손쉽게 재사용 할 수 있는 저장 프로시져 입니다. 저장 프로시져가 만들어질때(CREATE PROCEDURE) 소스가 미리 컴파일되어 있고 수행 계획이 처음 수행될 때만 한번 만들어지고 이후에는 이러한 과정이 생략되므로 일반적인 쿼리수행에 비해 빠른 성능을 제공합니다.
5) Trigger
테이블의 값이 변경(INSERT, UPDATE, DELETE)될 때 자동적으로 수행되는 저장 프로시져의 하나입니다.
6) Data Type
SQL Server가 제공하는 기본적인 데이터 형식말고도 사용자가 임으로 정할 수 있는 데이터 형식을 가리킵니다. 예를 들어 사원번호를 선언하는데 있어 어느 개발자는 CHAR(05)로, 어느 개발자는 CHAR(10) 또는 VARCHAR(10)과 같이 서로 다르게 사용할 수 있는데, 이를 해결하기 위하여 SABUN_TYPE 이라는 데이터 형식을 만들어 CHAR(05)로 선언하면 개발자들은 사원번호의 데이터 형식을 SABUN_TYPE 이라고 지정해서 사용하면 됩니다.
7) Default
데이터가 입력될 때 값이 들어오지 않으면 자동으로 입력되도록 Default 를 지정할 수 있습니다. 만일 주소 칼럼에 데이터를 저장하는데 (unknown) 을 Deault로 하면주소가 입력되지 않으면 (unknown)이 자동으로 입력됩니다.
8) Rule
특정 칼럼에 대하여 저장될 수 있는 값을 지정할 때 사용됩니다.
9) Constraint
데이터의 무결성을 위해서 제약을 주는 것입니다. Primary Key, Foreign Key, Check 등이 있습니다.
10) User Defiend Function
사용자 정의 함수는 SQL Server 2000에서 새롭게 선보이는 기능입니다. 특정한 값은 물론 테이블까지 사용자 정의 함수의 결과값이 될 수 있어 매우 유용하게 사용됩니다.
3. 데이터베이스 객체 사용하기
데이터베이스 객체를 지정하기 위해서는 다음의 형식을 따라야 합니다.
서버명.데이터베이스명.소유자.객체명 |
예를 들어 NTSRV01.Northwind.dbo.Orders 와 같이 사용합니다. 객체명을 제외한 앞 세부분은 생락이 가능한데 이 경우 다음과 같은 의미를 갖게 됩니다.
o 서버명을 생략하면 현재 로그인한 SQL Server명이 기본값으로 사용됩니다.
o 데이터베이스명을 생략하면 현재 사용중인 데이터베이스를 기본값으로 사용됩니다.
o 소유자가 생락되면 현재 연결한 사용자 계정이 기본값으로 사용됩니다.
이런 이유로 실제 개발시 많은 부분이 생략되어 사용됩니다. 하지만 나중에 스크립트를 볼 때 쉽게 파악이 가능하도록 되도록이면 붙여주는데 좋다고 생각합니다. 가끔은 자기가 작성한 스크립트를 자신도 이해하지 못하는 경우가 발생합니다.
외국 회사로부터 컨설팅을 받는 가운데 그들이 작성한 소스를 보면 경악을 금치 못합니다. 소스 구석 구석의 너무 과하다고 생각될 정도의 커멘트 때문입니다. 본받을 만한 습관이라고 생각합니다
출처 : http://www.sqlworld.pe.kr
"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기, 각종 광고, 영업, 판매, 제안서, 전단지 반응율 3배×10배 이상 높이는 마법의 8단계 공식" |
☞자세히보기 |
|
|