A

[SQL]Database 시스템 이란?

· 17년 전 · 1786

1. Database 시스템 이란?

데이터베이스 시스템이란 전산화된 데이터 파일의 저장 장치라고 보시면 됩니다. 즉, 정보를 유지하고, 이 정보를 이용 가능하게 하는 시스템을 말합니다. 그리고 다음과 같은 파일 연산을 제공합니다.

  • 새로운 파일을 데이터베이스가 추가할 수 있는 연산
  • 새로운 데이터를 기존의 파일에 삽입할 수 있는 연산
  • 기존의 파일에서 데이터를 검색할 수 있는 연산
  • 기존의 파일에 있는 데이터를 갱신할 수 있는 연산
  • 기존의 파일로부터 데이터를 삭제할 수 있는 연산
  • 데이터베이스에서 기존의 파일을 제거할 수 있는 연산

그런데 데이터베이스에서 사용하는 단어들에 대해 주의해야 할 사항이 있습니다. 저장파일은 파일로써 보다는 테이블(Table)로 취급합니다. 테이블의 각 행은 파일의 레코드를 표현합니다. SELECT, INSERT, UPDATE와 DELETE 연산은 SQL(Structu#FF9966 Query Language) 데이터베이스의 문장입니다. 그리고 SQL은 하나의 프로그래밍 언어라고 보시면 되겠네요.
그럼 데이터베이스의 장점은 무엇일까요?

  • 중복성(Redundancy)이 감소된다.
  • 불일치(Inconsistency)를 피할 수 있다.
  • 데이터의 공유성(Sha#FF9966)
  • 표준화(Standard)가 가능하다.
  • 보안(Security)을 유지할 수 있다.
  • 무결성(Integrity)을 유지할 수 있다.
  • 요구사항들의 충돌이 해결될 수 있다.
  • 데이터의 독립성(Data Independence)

여기에서 가장 중요한 것이 데이터의 독립성이라고 할 수 있습니다. 데이터 독립성의 목적은 "저장구조(Storage Structure)와 액세스 전략(Access Strategy)으로부터 응용을 분리시키는 것"으로 정의할 수 있습니다. 여기서 응용이란 특정 저장구조나 액세스 전략에 의존하지 않는 것을 의미합니다. 쉽게 얘기하자면 어떤 속성에 대해 수행한 변경이 동일한 관계를 위한 다른 속성들에게 어떠한 인지가능한 영향도 주지 않는다는 것을 의미합니다.

그럼 관계형 시스템과 다른 시스템의 차이는 무엇일까요? 요새 개발되고 있는 모든 데이터베이스 시스템을 관계형 시스템이라고 보시면 됩니다.관계형 시스템에서는 데이터를 테이블(Table)로써 받아들이고, 사용자가 제시한 연산자는 새로운 테이블을 만들어내는 연산자라고 보시면 됩니다. 그럼 관계형 데이터베이스 시스템은 다음과 같은 특성이 있습니다.

  • 모든 엔티티는 그 엔티티의 인스턴스를 독특하게 정의하는 일련의 속성들을 갖고 있는데, 이 속성 집합을 기본 키(Primary Key)라고 부릅니다.
  • 기본 키는 어떠한 부분도 널(Null)이 될 수 없다.
  • 모든 엔티티는 엔티티 내의 각 행을 독특하게 식별하는 일련의 속성들을 갖고 있습니다. 그리고 어떠한 복제 행도 테이블 내에 존재할 수 없죠. 어떻게 보면 이것은 모든 테이블이 기본 키를 갖고 있어야 한다는 말입니다. 이러한 개념을 데이터 무결성(Data Integrity)라고 부르죠.
  • 각각의 테이블들은 외부 키를 통해서 서로 관계를 맺습니다. 외부 키는 가능한 값의 집합이 두 번째 테이블의 기본 키에서 발견되는 목적인 한 개의 테이블 열입니다. 그래야 테이블들을 Join해서 사용하기가 쉽죠. 참조 무결성은 어떤 외부 키 열 내에 있는 값(Value)들이 그것이 참조하는 키본 키나 널(Null) 값으로 제한될 때 성취됩니다.
  • 행의 순서는 자발적입니다. 관계형 데이터베이스에서는 테이블에 함축된 순서가 없습니다. 여러분이 순서를 지정하지 않으면 테이블에서 행이 검색될 순서를 알 수가 없죠. 프로그래밍을 하다보면 ORDER BY의 문구로 순서를 정해줄 수 있습니다.
  • 열의 순서도 자발적입니다. 행의 경우처럼 함축된 순서가 없습니다.

데이터베이스 시스템의 구조는 내부, 외부, 개념의 세 단계로 나누어집니다.내부단계(Internal Level)는 물리적인 기억장소와 가장 가까운 단계로 데이터가 실제로 저장되는 방법과 관련이 있습니다. 외부단계(External Level)은 사용자와 가장 가까운 단계죠. 사용자 개개인이 보는 자료에 대한 관점과 관련이 있습니다. 그리고 개념단계(Conceptual Level)는 내부단계와 외부단계 사이에 위치하는 간접(Indirection)단계죠.

데이터베이스를 접하다 보면 DBA라는 말을 많이 듣게 됩니다. 그럼 데이터베이스 관리자(Database Administrator : DBA)에 대해서 알아보죠. 데이터베이스 관리자는 전체 시스템을 모두 제어하는 개인이나 그룹입니다. DBA의 책임은 다음과 같은 것들이 있죠.

  • 데이터베이스의 정보 내용 결정. 즉 어떤 정보가 데이터베이스에 포함되어야 하는지 정확하게 결정하는 것이 DBA의 일입니다.
  • 기억장치 구조와 액세스 전략 결정. DBA는 데이터베이스 안에서 데이터가 어떻게 표현되는지 결정해야 하고 기억장소 구조 정의를 작성함으로써 그 표현을 정의해야 합니다. 또한 내부적 단계와 개념적 단계 사이에 관련된 사상을 정리해야 합니다.
  • 사용자와의 연락. 사용자가 요구한 데이터가 유용함을 보장하고, 필요한 외부 스키마를 응용 가능한 외부 DDL을 사용하여 기록할 수 있도록 해 준다.
  • 보안 검사와 무결성 검사 정의.
  • 예비조치와 회복에 대한 전략 정의. 사용자의 오류나 하드웨어 또는 운영체계 시스템의 실수로 데이터베이스의 임의의 부분에서 오류가 발생했을 때 최소한의 지연시간과 가능한 한 남은 시스템에 영향이 없도록 해서 데이터를 복구해야 합니다. DBA는 적절한 회복전략을 정의하고 구현해야 합니다.
  • 변화하는 요구에 대한 적응과 성능향상에 대한 감시. DBA는 기업을 위한 최상의 실행 결과를 얻도록 시스템을 구성해야 합니다. 그리고 변화하는 요구에 적절한 조절을 해 주어야 합니다.

데이터베이스 관리 시스템(Database Management System : DBMS)은 데이터베이스의 모든 액세스를 처리하는 소프트웨어입니다. 개념적으로 다음과 같은 작업이 발생합니다.

  • 사용자가 특수한 데이터 종속언어(SQL 같은)를 사용하여 액세스를 요구한다.
  • DBMS가 이 요구를 받아서 분석한다.
  • DBMS가 이 사용자의 외부 스키마와 외부적/개념적 사상, 개념 스키마, 개념적/내부적 사상, 기억장소 구조 정의를 차례대로 검토한다.
  • DBMS가 저장된 데이터베이스에서 필요한 연산을 수행한다.

끝내기 전에 간단히 SQL이 무엇인가 살펴보도록 하죠. SQL은 보통 "시이퀄"이라고 발음합니다. SQL은 구조화 질의 언어라고 부르는데, SQL을 이용해서 여러분은 데이터베이스와 통신을 할 수 있습니다. SQL은 비 프로시저 언어입니다. 데이터에 접근하여 조작하는 방법을 정확히 기술해야 하는 C 언어나 COBOL 언어와는 달리 SQL은 해야 할 것을 지정합니다. SQL은 내부적으로 요구한 것을 수행하는 방법을 결정합니다. SQL의 산업기준은 ANSI입니다. ORACLE의 SQL은 무결성 향상 기능(Integrity Enhancement Feature)을 완전히 실행하는 ANSI X3.135-1989/ISO 9075-1989 기준의 레벨 2를 준수한다고 하네요. 뭔지 모르지만..

여기 까지 그냥 데이터베이스가 이런 것이구나! 하고 부담없이 생각하세요.

[이 게시물은 관리자님에 의해 2011-10-31 17:27:00 MySQL에서 이동 됨]
|
댓글을 작성하시려면 로그인이 필요합니다. 로그인

프로그램

+
제목 글쓴이 날짜 조회
17년 전 조회 3,652
17년 전 조회 1,546
17년 전 조회 1,380
17년 전 조회 2,316
17년 전 조회 1,308
17년 전 조회 1,622
17년 전 조회 1,453
17년 전 조회 2,522
17년 전 조회 1,491
17년 전 조회 1,082
17년 전 조회 1,217
17년 전 조회 3,092
17년 전 조회 2,157
17년 전 조회 1,964
17년 전 조회 1,207
17년 전 조회 2,442
17년 전 조회 1,164
17년 전 조회 1,123
17년 전 조회 1,364
17년 전 조회 2,727
17년 전 조회 2,384
17년 전 조회 2,470
17년 전 조회 1,172
17년 전 조회 1,286
17년 전 조회 3,235
17년 전 조회 2,821
17년 전 조회 4,088
17년 전 조회 2,248
17년 전 조회 2,344
17년 전 조회 1,393
17년 전 조회 2,513
17년 전 조회 2,200
17년 전 조회 2,959
17년 전 조회 2,467
17년 전 조회 1,630
17년 전 조회 2,424
17년 전 조회 1,582
17년 전 조회 1,170
17년 전 조회 2,231
17년 전 조회 2,875
17년 전 조회 4,052
17년 전 조회 3,141
17년 전 조회 1,408
17년 전 조회 1,706
17년 전 조회 2,237
17년 전 조회 1,542
17년 전 조회 1,714
17년 전 조회 2,709
17년 전 조회 2,133
17년 전 조회 1,787
17년 전 조회 4,188
17년 전 조회 3,038
17년 전 조회 1,429
17년 전 조회 3,561
17년 전 조회 2,792
17년 전 조회 2,073
17년 전 조회 1,289
17년 전 조회 2,323
17년 전 조회 2,063
17년 전 조회 1,976
17년 전 조회 1,919
17년 전 조회 1,170
17년 전 조회 1,874
17년 전 조회 2,928
17년 전 조회 1,428
17년 전 조회 1,669
17년 전 조회 1,350
17년 전 조회 1,597
17년 전 조회 1,570
17년 전 조회 1,443
17년 전 조회 2,556
17년 전 조회 2,319
17년 전 조회 2,099
17년 전 조회 1,409
17년 전 조회 2,423
17년 전 조회 4,245
17년 전 조회 2,734
17년 전 조회 1,655
17년 전 조회 1,850
17년 전 조회 3,227
17년 전 조회 2,229
17년 전 조회 3,823
17년 전 조회 1,670
17년 전 조회 2,267
17년 전 조회 2,096
17년 전 조회 1,612
17년 전 조회 2,126
17년 전 조회 1,923
17년 전 조회 1,959
17년 전 조회 3,072
17년 전 조회 2,146
17년 전 조회 1,435
17년 전 조회 1,458
17년 전 조회 2,123
17년 전 조회 3,199
17년 전 조회 2,133
17년 전 조회 1,525
17년 전 조회 4,231
17년 전 조회 2,020
17년 전 조회 3,452
🐛 버그신고