스키마(Schema) SQL Server는 Table, Index, Primary Key, Foreign Key, View, Check, Default, Stored procedure, Function, Trigger, Data type 등과 같은 다양한 데이터베이스 개체을 가지고 있다. 이중 실제 물리적인 크기를 갖는 개체는 Table과 Index이다. View 경우 Index를 지정하면 물리적인 크기를 갖게 된다. SQL Server에서 개체 이름은 서버명.데이터베이스명.스키마명.개체명 과 같이 전체 이름를 사용하는 방법과 부분 이름을 사용하는 방법이 있다. 분산 트랜젝션이나 원격 질의 등을 수행할 경우는 전체 이름을 사용해야 하나 대부분은 데이터베이스에 연결된 경우 스키마명.개체명 정도를 사용하는 것이 무난하다. 데이터베이스 내의 개체들을 포함하는 추상적 개념으로 스키마라는 개념을 사용한다. SQL Server 2000의 경우 테이블 등과 같은 개체를 생성할 경우 사용자에게 권한을 부여하였기 때문에 사용자명.개체명 으로 개체 이름을 사용하였다. 하지만 사용자를 삭제할 경우 해당 사용자에게 권한이 부여된 개체를 모두 삭제하거나, 다른 사용자에게 권한을 이관해야만 삭제가 가능한 불편함이 있었고, 어플리케이션 내에 사용자명.개체명 으로 명명된 개체 이름을 모두 찾아서 수정해야 하는 불편함마저 발생하였다. SQL Server 2005부터는 스키마를 사용하여 이런 불편함을 없앴으며, 사용자는 스키마에 대한 권한을 지정하므로써 해당 스키마내의 개체들을 대상으로 작업을 하는 구조로 변경되었다. 데이터베이스를 만들면 기본적으로 dbo 라는 이름의 스키마가 만들어지는데 dbo 라는 이름은 SQL Server 2000에서 관리자 계정이 DBO 라는 이름으로 지정되었기 때문에 호환성을 위해 선택된 이름이다. 스키마명은 보통 업무별로 이름을 지정하고 해당 업무 담당자를 사용자로 지정하여 권한을 주는게 일반적이다. 스키마를 삭제할 경우는 해당 스키마가 소유하...