소개
어수선한 차고를 잘 조직 된 밝은 조명 공간으로 바꾸는 것을 상상해보십시오. 데이터베이스의 세계 에서이 프로세스를 정규화라고합니다. 깔끔한 차고가 효율성을 향상시키는 것처럼 구성된 데이터를 가진 잘 구조화 된 데이터베이스가 더 잘 수행됩니다. 더 배울 준비가 되셨습니까? 이 기사는 실제 SQL 예제와 함께 처음 세 가지 정상 형태 인 1NF, 2NF 및 3NF를 탐구합니다. 데이터베이스 설계 경험에 관계없이보다 효율적이고 확장 가능한 데이터베이스를 구축하는 방법을 배웁니다. 데이터를 최적화 할 준비가 되었습니까? 시작하자!
개요
- SQL을 사용하여 데이터베이스 정규화의 핵심 원칙과 목표를 파악하십시오.
- 원자 값과 1 차 키를 보장하기 위해 첫 번째 정규 양식 (1NF)을 적용하십시오.
- 두 번째 정규 형태 (2NF)를 달성하기 위해 부분 종속성을 식별하고 제거합니다.
- 전이 의존성을 제거하여 세 번째 정상 형태 (3NF)의 요구 사항을 충족 시키십시오.
- 실제 SQL 쿼리를 사용하여 정규화 된 데이터베이스 구조를 구현하십시오.
목차
- 소개
- 정규화 란 무엇입니까?
- 첫 번째 정상 형태 (1NF)
- 두 번째 정상 형태 (2NF)
- 세 번째 정상 형태 (3NF)
- 실용적인 예 : 모든 것을 함께 가져옵니다
- 결론
- 자주 묻는 질문
정규화 란 무엇입니까?
정규화는 관계형 데이터베이스 설계의 중요한 측면입니다. 중복성을 최소화하고 데이터 무결성을 향상시켜 데이터 구성을 간소화합니다. 이 프로세스에는 데이터베이스를 여러 테이블로 나누고 확립 된 규칙에 따라 데이터베이스 간의 관계를 정의하여 데이터 이상을 줄입니다. 각 정상적인 형태를 자세히 살펴보고 원리를 요약하고 실용적인 SQL 예제로 설명해 봅시다.
첫 번째 정상 형태 (1NF)
목표 : 각 테이블에 기본 키가 있는지 확인하고 모든 열에 원자 (불가분의) 값이 포함되어 있습니다. 테이블은이 규칙을 준수하는 경우 1NF를 만족시킵니다.
- 원자 값 : 각 열은 행 당 하나의 값만 유지해야합니다.
- 고유 한 열 이름 : 각 열에는 고유 식별자가 있어야합니다.
- 주문 독립성 : 데이터 저장 순서는 관련이 없습니다.
예:
반복 그룹이있는 정규화되지 않은 테이블을 고려하십시오.
ORDERID | 커스텀러 이름 | 제품 | 수량 |
---|---|---|---|
1 | 존 도 | 펜, 연필 | 2, 3 |
2 | 제인 스미스 | 노트북, 지우개 | 1, 2 |
Products
및 Quantities
열에 여러 값이 포함되어 있기 때문에이 테이블은 1NF를 위반합니다.
1NF로 변환 :
ORDERID | 커스텀러 이름 | 제품 | 수량 |
---|---|---|---|
1 | 존 도 | 펜 | 2 |
1 | 존 도 | 연필 | 3 |
2 | 제인 스미스 | 공책 | 1 |
2 | 제인 스미스 | 지우개 | 2 |
SQL 구현 :
테이블 주문 생성 ( Orderid int, CustomerName Varchar (255), 제품 varchar (255), 수량 int, 기본 키 (OrderId, 제품) );
두 번째 정상 형태 (2NF)
목표 : 테이블이 1NF이고 모든 비 키 속성이 전체 기본 키에 완전히 의존하는지 확인하십시오. 이것은 복합 기본 키가있는 테이블과 관련이 있습니다.
2NF 달성 단계 :
- 1NF 준수 : 테이블은 이미 1NF를 준수해야합니다.
- 부분 종속성 제거 : 비 키 속성이 그 일부가 아니라 전체 기본 키에 의존하는지 확인하십시오.
예:
1NF의 테이블을 고려하지만 부분 종속성을 나타냅니다.
ORDERID | CustomerId | productId | 수량 | 커스텀러 이름 |
---|---|---|---|---|
1 | 1 | 1 | 2 | 존 도 |
2 | 2 | 2 | 1 | 제인 스미스 |
여기에서 CustomerName
Composite 키 ( OrderID
, ProductID
)가 아닌 CustomerID
에만 의존합니다.
2NF 로의 변환 :
-
Orders
및Customers
위한 별도의 테이블 작성 :
주문 테이블 :
ORDERID | CustomerId | productId | 수량 |
---|---|---|---|
1 | 1 | 1 | 2 |
2 | 2 | 2 | 1 |
고객 테이블 :
CustomerId | 커스텀러 이름 |
---|---|
1 | 존 도 |
2 | 제인 스미스 |
SQL 구현 :
테이블 주문 생성 ( Orderid int, CustomerId int, productid int, 수량 int, 기본 키 (OrderId, productID) ); 테이블 고객 만들기 ( CustomerID int 기본 키, CustomerName Varchar (255) );
세 번째 정상 형태 (3NF)
목표 : 테이블이 2NF에 있고 모든 속성이 기본 키에만 의존하는지 확인합니다.
3NF 달성 단계 :
- 2NF 준수 : 테이블은 이미 2NF 요구 사항을 충족해야합니다.
- 전이 의존성 제거 : 비 키 속성이 다른 비 키 속성에 의존하지 않도록하십시오.
예:
2NF의 테이블을 고려하지만 전이 의존성이 있습니다.
ORDERID | CustomerId | productId | 수량 | ProductName |
---|---|---|---|---|
1 | 1 | 1 | 2 | 펜 |
2 | 2 | 2 | 1 | 공책 |
여기서는 ProductName
OrderID
에 직접적으로가 아닌 ProductID
에 따라 다릅니다.
3NF 로의 변환 :
-
Orders
및Products
에 대한 별도의 테이블 작성 :
주문 테이블 :
ORDERID | CustomerId | productId | 수량 |
---|---|---|---|
1 | 1 | 1 | 2 |
2 | 2 | 2 | 1 |
제품 테이블 :
productId | ProductName |
---|---|
1 | 펜 |
2 | 공책 |
SQL 구현 :
테이블 주문 생성 ( Orderid int, CustomerId int, productid int, 수량 int, 기본 키 (OrderId, productID) ); 테이블 고객 만들기 ( CustomerID int 기본 키, CustomerName Varchar (255) ); 테이블 제품 생성 ( ProductId int 기본 키, ProductName Varchar (255) );
실용적인 예 : 모든 것을 함께 가져옵니다
이 비정규 데이터부터 시작하겠습니다.
ORDERID | 커스텀러 이름 | 제품 | 수량 |
---|---|---|---|
1 | 존 도 | 펜, 연필 | 2, 3 |
2 | 제인 스미스 | 노트북, 지우개 | 1, 2 |
1 단계 : 1NF로 변환합니다
다중 값 열을 원자 값으로 별도로 분리합니다.
ORDERID | 커스텀러 이름 | 제품 | 수량 |
---|---|---|---|
1 | 존 도 | 펜 | 2 |
1 | 존 도 | 연필 | 3 |
2 | 제인 스미스 | 공책 | 1 |
2 | 제인 스미스 | 지우개 | 2 |
2 단계 : 2NF로 변환합니다
부분 종속성을 식별하고 별도로 분리합니다.
- 주문 테이블 :
ORDERID | CustomerId | productId | 수량 |
---|---|---|---|
1 | 1 | 1 | 2 |
1 | 1 | 2 | 3 |
2 | 2 | 3 | 1 |
2 | 2 | 4 | 2 |
- 고객 테이블 :
CustomerId | 커스텀러 이름 |
---|---|
1 | 존 도 |
2 | 제인 스미스 |
- 제품 테이블 :
productId | ProductName |
---|---|
1 | 펜 |
2 | 연필 |
3 | 공책 |
4 | 지우개 |
3 단계 : 3NF로 변환합니다
전이 의존성을 제거하여 기본 키에 대한 직접적인 종속성을 보장합니다.
- 2 단계의 테이블은 모든 비 키 속성이 기본 키에만 의존하기 때문에 이미 3NF를 만족시킵니다.
결론
이 기사는 SQL 정규화를 구현하는 방법을 보여주었습니다. SQL 정규화 마스터 링은 강력하고 효율적인 데이터베이스를 구축하는 데 중요합니다. 처음 세 가지 정상 형태 (1NF, 2NF 및 3NF)의 원리를 이해하고 적용함으로써 중복성을 크게 줄이고 데이터 무결성을 향상시킬 수 있습니다. 이는 데이터 관리를 단순화 할뿐만 아니라 전체 데이터베이스 성능을 향상시킵니다. 이러한 실용적인 SQL 예제를 사용하면 복잡한 구조화 된 데이터 세트를 효율적이고 잘 구조화 된 데이터베이스로 변환 할 수 있습니다. 데이터베이스가 안정적이고 확장 가능하며 쉽게 유지 관리 할 수 있도록 이러한 기술을 구현하십시오.
자주 묻는 질문
Q1. 데이터베이스 정규화 란 무엇입니까?
A. 데이터베이스 정규화는 데이터 중복성을 줄이고 데이터 무결성을 향상시키기 위해 일련의 소위 정상 형태에 따라 관계형 데이터베이스를 구성하는 프로세스입니다.
Q2. 정규화가 중요한 이유는 무엇입니까?
A. 정규화는 데이터 복제를 최소화하고 데이터 일관성을 보장하며 데이터베이스 유지 관리를 단순화합니다.
Q3. 정상적인 형태는 무엇입니까?
A. 정상 형태는 정규화 과정에서 단계를 나타냅니다 : 1NF (제 1 정규 형태), 2NF (두 번째 정상 형태) 및 3NF (세 번째 정상 형태) 등.
위 내용은 SQL로 정규화를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이 기사는 "AI Agency Decay"의 점점 더 많은 관심을 탐구합니다. 즉, 독립적으로 생각하고 결정하는 능력이 점진적으로 감소합니다. 이것은 점점 더 자동화 된 세계를 항해하는 비즈니스 리더에게 특히 중요합니다.

Siri와 Alexa와 같은 AI 요원이 어떻게 작동하는지 궁금한 적이 있습니까? 이러한 지능형 시스템은 우리의 일상 생활에서 더욱 중요 해지고 있습니다. 이 기사는 추론을 결합하여 AI 에이전트를 향상시키는 방법 인 React 패턴을 소개합니다.

"AI 도구가 대학생들을위한 학습 기회를 바꾸고 있다고 생각합니다. 우리는 핵심 과정에서 학생들을 개발하는 것을 믿지만 점점 더 많은 사람들이 계산 및 통계적 사고에 대한 관점을 얻고 싶어합니다. 그는 사람들이 AI의 제작자이자 공동 제작자가되어야한다고 믿는다. 이는 학습과 다른 측면이 몇 가지 주요 변화에 적응해야한다는 것을 의미한다. 디지털 인텔리전스와 비판적 사고 조지 워싱턴 대학교의 알렉사 주빈 교수

Langchain은 정교한 AI 애플리케이션을 구축하기위한 강력한 툴킷입니다. 에이전트 아키텍처는 특히 주목할 만하므로 개발자는 독립적 인 추론, 의사 결정 및 행동을 취할 수있는 지능형 시스템을 만들 수 있습니다. 이 exply

방사형 기본 기능 신경망 (RBFNNS) : 포괄적 인 안내서 방사형 기본 기능 신경망 (RBFNN)은 활성화를 위해 방사형 기반 기능을 활용하는 강력한 유형의 신경망 아키텍처입니다. 그들의 독특한 구조가 만듭니다

BCI (Brain-Computer Interfaces)는 뇌를 외부 장치에 직접 연결하여 뇌 충동을 물리적 움직임없이 행동으로 변환합니다. 이 기술은 이식 된 센서를 사용하여 뇌 신호를 캡처하여 디지털 커먼으로 변환합니다.

이 "Deading with Data"에피소드는 Explosion AI의 공동 창립자이자 CEO 인 Ines Montani와 Spacy and Prodigy의 공동 개발자를 특징으로합니다. INES는 이러한 도구의 진화, 폭발의 독특한 비즈니스 모델 및 TR에 대한 전문가의 통찰력을 제공합니다.

이 기사는 검색 증강 생성 (RAG) 시스템과 AI 에이전트가 자신의 기능을 향상시키는 방법을 살펴 봅니다. 전통적인 래그 시스템은 맞춤형 엔터프라이즈 데이터를 활용하는 데 유용하지만 실시간 DAT 부족과 같은 제한 사항이 있습니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는
