9장. 데이터베이스 설계
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
데이터베이스 계획
지금까지 이 책에서는 SELECT 문을 사용하여 데이터의 소비자가 되는 방법만 배웠습니다. 데이터를 읽고 흥미로운 방식으로 변환하는 분석 작업( )을 수행했지만 이 작업은 테이블의 데이터를 물리적으로 변경하지 않습니다. SELECT 문은 읽기 전용 연산입니다. 하지만 때로는 INSERT, UPDATE, DELETE 레코드뿐만 아니라 CREATE 새 테이블을 만들고 싶을 때가 있습니다.
비즈니스를 지원하기 위해 자신만의 테이블을 만들 때는 가볍게 해서는 안 됩니다. 잘못된 데이터베이스 설계는 나중에 후회할 수 있으므로 신중하게 계획해야 합니다. 설계를 주도해야 하는 중요한 질문이 있습니다:
- 디자인 관련 질문
-
-
비즈니스 요구 사항은 무엇인가요?
-
이러한 요구 사항을 충족하려면 어떤 테이블이 필요하나요?
-
각 테이블에는 어떤 열이 포함되나요?
-
테이블은 어떻게 정규화되나요?
-
부모와 자녀의 관계는 어떻게 될까요?
표와 표가 어떻게 연관되어 있는지 보여주는 다이어그램을 작성하는 것이 좋습니다. 하지만 디자인만이 고려해야 할 유일한 요소는 아닙니다. 데이터를 채우는 것도 계획 프로세스의 일부가 되어야 합니다. 데이터가 유지 관리가 어렵고 최신 상태로 유지되지 않는다면 이미 디자인이 실패한 것입니다. 이 요소는 종종 간과되어 데이터베이스 프로젝트의 실패를 초래할 수 있습니다.
-
- 데이터 관련 질문
-
-
이 테이블에 얼마나 많은 데이터가 채워질까요?
-
누가/무엇이 이 테이블에 데이터를 채우나요?
-
데이터의 출처는 어디인가요?
-
테이블을 자동으로 채우는 프로세스가 필요합니까?
데이터의 시작은 어딘가에서 이루어져야 합니다. 데이터의 성격에 따라 조직 내에서 생성되거나 외부에서 수신될 수 있습니다. 정기적으로 업데이트되는 대량의 데이터를 저장해야 하는 경우, 사람이 이 작업을 수동으로 수행할 수 없을 가능성이 높습니다. 이를 위해서는 Java, Python 또는 다른 코딩 언어로 작성된 프로세스가 필요합니다.
보안과 관리는 이 책의 범위를 벗어나지만, 중앙 집중식 데이터베이스는 일반적으로 이러한 영역과 관련이 있습니다. 권한 및 보안 관리는 그 자체로 풀타임 작업이며 데이터베이스 관리자(DBA)가 수행하는 경우가 많습니다. 중앙 집중식 데이터베이스의 경우 보안 요소를 고려해야 합니다.
-
- 보안 질문
-
-
누가 이 데이터베이스에 액세스해야 하나요?
-
누가 어떤 테이블에 액세스할 수 있어야 하나요? 읽기 전용 액세스? 쓰기 액세스?
-
이 데이터베이스가 비즈니스 운영에 중요합니까?
-
재해/장애 발생 시 어떤 백업 계획이 있나요?
-
테이블에 대한 변경 사항을 기록해야 하나요?
-
데이터베이스가 웹사이트나 웹 애플리케이션에 사용되는 경우 안전한가요?
-
- 보안은 종종 다루기 어려운 주제입니다. 과도한 보안은 관료주의를 낳고 민첩성을 방해하지만, 불충분한 보안은 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access