2014-06-18 6 views
0

누구든지 PostgreSQL이 Codd의 12 개 규칙 모두를 준수하는지 여부에 관한 좋은 참고 자료가 있습니까?PostgreSQL은 Codds 규칙을 준수합니까?

그렇지 않은 경우이 주제에 대한 의견이있는 베테랑 PostgreSQL 사용자가 있습니까?

감사합니다.

답변

0

내 답변은 Google을 통해 다른 답변을 기반으로합니다.

1986 년에 SQL 언어의 첫 번째 ANSI 표준이 만들어졌습니다. 마지막 ANSI 표준은 ANSI SQL : 2003입니다. 그럼에도 불구하고 요구 사항은 소수의 RDBMS에서만 구현됩니다. 지금까지 가장 널리 보급 된 RDBMS는 ANSI SQL : 1999를 존중합니다. PostgreSQL은 완전히 ANSI SQL : 1999와 부분 ANSI : 2003을 지원합니다.

경우에는 엄격하게 커드의 규칙 말하기 :

커드의 12 규칙은 없습니다를 관계형 모델입니다보십시오. 실제로, 그는 1.990 책 _The_Relational_Model_for_Database_Management에서이 12 개에서 40 개의 규칙을 확장했습니다.

그러나 또한, 당신이 읽을 신경 경우 크리스토퍼 J 날짜의 당신이 관계형 모델은 몇 가지 기본 요소와 몇 가지 원칙을 포함하는 것을 볼 수 _An_Introduction_to_Database_Systems_ 1.999.

기본 요소는 도메인 또는 데이터 형식입니다. PostgreSQL 은 정의가 어떤 도메인의 일부가 아닌 NULL을 허용하기 때문에 실제로 도메인을 적용하지 않습니다. 따라서 이라는 이름과 attribute라는 속성 값이 나뉘어 지므로 튜플 - 은 명제를 나타내며 누락 된 정보가있는 이라는 명제가 관계의 헤더에 선언 된 것이 아니라 - 그래서 관계도 깨집니다.

또한, 관계는 가방이 아니라 집합입니다. 가방 은 중복을 허용하지만 관계는 허용하지 않습니다. 그래서 PostgreSQL은 이 각각의 테이블에 대해 각각 의 후보 키를 선언 할 필요성을 강제하지 않기 때문에 그 테이블은 반드시 관계가 아니지만 실제로는 일 수도 있고 일반적으로 위의 튜플이 아닌 단지 행입니다.

첫 번째 원칙은 정보 원칙입니다. 모든 데이터베이스는 데이터로 표시되어야합니다. 객체 ID는 을 위반합니다. 이는 데이터 독립성에 심각한 영향을 미치므로 방법으로 다른 관계형 모델의 사인파가 필요하지 않습니다. 즉, 사용자, 논리적 스키마 및 물리적 스키마 간의 차이는 입니다. PostgreSQL에 의해 올바르게 지원되지 않는 도 없습니다.

+0

[Postgres는 'ctid'와 같은 시스템 열을 추가합니다. (http://stackoverflow.com/questions/17500013/in-order-sequence-generation/17503095#17503095) 고유 한 키가 없습니다. –