데이터베이스의 주요 기능은
“기능이 아닙니다.
” 이것은
데이터베이스는 수학처럼 참과 거짓을 반환하지 않습니다.
데이터베이스는 통계처럼 확률과 오류 확률을 반환하지 않습니다.
데이터베이스는 일대다 관계를 위해 설계되었습니다.
DB 사용자가 “영화 보여줘”라는 쿼리를 입력하면 DB는 셀 수 없이 많은 경우의 답변을 반환할 수 있습니다.
무한한 가능성을 가진 도구를 적절하게 사용하려면 적절한 제약이 필요합니다.
이 제약 조건 구현의 합성 표현 데이터베이스의 구조말하다.
중요해 보이지 않습니까?
내가 직접 데이터베이스 구조를 설계하는 예를 들어 자세히 설명하겠습니다.
내 데이터베이스의 목표는 코코아택시~였다
택시 회사를 운영하려면 어떤 데이터베이스 구조가 필요합니까?
(앞으로 제시된 각 구조의 문제점을 설명할 수 있다면 아마 DB 전문가일 것이다.
)
팁: 어떤 속성을 어떤 테이블에 넣을지 알고 싶다면
회사에서 발행한 영수증을 참고하시면 됩니다.
또한 카카오택시의 경우 어플이 있으니 참고하시면 됩니다.
다음과 같은 초안을 상상했습니다.
(프로그램 사용: ERwin Data Modeler)
이 디자인은 완전히 잘못되었습니다.
- 실제 비즈니스에서 사용되지 않는 엔터티(저항, 수수료, 수수료 시스템)가 있습니다.
- 불필요한 엔터티로 인해 불필요한 관계가 정의되었습니다.
- 각 상세 엔터티에 포함된 속성은 상세 테이블로 관리하기에 부적합한 속성입니다.
개선합시다.
이 구조는 다음과 같은 문제점이 있습니다.
- 택시 업계에서 ‘위치’는 하나의 테이블로 관리해야 하는 강력한 엔터티입니다.
- 모바일 장치는 도구일 뿐 고객과 동등합니다.
여전히 문제를 찾을 수 있습니다.
- ‘전화를 받는 주체’와 ‘서비스를 제공하는 주체’를 구분할 필요는 없다.
- where 테이블에는 도착과 출발이라는 두 가지 관계가 있어야 합니다.
거의 끝났다.
- 마지막으로 ‘장소’를 하나의 실체로 생각하고 통합하여 두 개의 관계로 표현하는 것이 보다 정교하다.
(간단한 것이 더 좋습니다) - 비즈니스 상황에서 기본 키가 반드시 상속되지 않는 경우는 비식별 관계로 간주되므로 점선으로 표시됩니다.
- 세부 속성을 추가합니다.
이것이 최종 디자인입니다.
신탁
그런 다음 Oracle에서 구현했습니다.
Oracle 구현 시 팁:
1분기 작업 중이던 쿼리가 사라지면 어떻게 해야 합니까?
A1. “개발자 워크시트”의 “SQL 기록”에서 이전 쿼리를 복원할 수 있습니다.
Q2. PK와 FK는 어떻게 지정됩니까?
A2. 일반적으로 “테이블명 변경, 제약조건 추가”라는 코드가 주어진다.
이 경우 참조할 상위 테이블이 미리 존재해야 합니다.
테이블 생성 순서 우리는 당신이 당신의 마음을 결정하는 것이 좋습니다
3분기 ID 및 비ID 관계를 구현하는 방법은 무엇입니까?
A3. 자식 테이블에서 상속받은 키가 기본 키(PK)로 설정되지 않으면 자동으로 비식별 관계가 됩니다.
참고로 “기본 키는 하나여야 합니다!
그러나 기본 키는 속성을 가질 필요가 없습니다.
” 속성 집합은 고유하게 취급될 때 기본 키 역할을 합니다.
4분기 DB 제약 조건 간에 삭제 캐스케이드를 구현하는 방법은 무엇입니까?
A4. 삭제 계단식은 상위 테이블의 특정 행이 삭제될 때 하위 테이블의 데이터가 자동으로 삭제됨을 의미합니다.
처음에는 DB의 기본 기능인 줄 알았는데 오라클의 기본 설정에서는 동작하지 않는다.
Delete Cascade 코드에서 Add Constraint(~)로 구현할 수 있습니다.
또한 Oracle은 다음과 같은 모델 그래프 기능도 제공합니다.
마지막으로 경제적인 관점에서 “왜 데이터베이스를 사용하는가?”에 대해 생각해 봅시다.
모든 데이터가 DB에 저장되는 것은 아닙니다.
그 이유는 관리할 데이터가 충분하지 않으면 데이터베이스를 만들고 유지하는 데 아무런 이점이 없기 때문입니다.
데이터 볼륨 대 비용 차트.
수동 회계 | 엑셀 파일을 사용하는 경우 | DB를 사용하는 경우 |
회사에서 사용하는 데이터의 양에 따라 적절한 데이터 관리 방법을 적용해야 합니다.
이 글이 미래에 데이터 엔지니어가 되고자 하는 분들에게 작은 힌트가 되었으면 합니다.
감사해요