1일 1개념정리 24.08.09.금 ~
큰 결정에 큰 동기가 따르지 않을 때도 있다. 하지만 큰 결심이 따라야 이뤄낼 수 있다.
무조건 무조건 1일 1개의 개념 정리하기 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#58. DB의 내용에 의한 참조
오늘은 살짝 가벼운 이야기를 써본다. 전산직 필기 공부할때 나온 건데, DB에서 데이터를 참조할 때는 내용으로 찾는다.... 라고 하는데 얼핏 보면 무슨 소린가 싶다. 인덱스 포인터로 하는 게 아니라 내용을 하나하나 비교한다는 것인가? 이 표현에 대해 가볍게 알아보자.
내용에 의한 참조
"내용에 의한 참조"는 실제 데이터의 위치나 포인터 대신 데이터의 내용 자체를 기준으로 접근하는 방식을 의미한다. 한마디로, 이런 쿼리가 있을 때 내용에 의한 참조라고 이야기한다.
SELECT * FROM students WHERE email = "abc@naver.com"
정확히 해당 이메일 주소 자체를 기준으로 검색하고 있다. 그럼 결과는 abc@naver.com이랑 정확히 일치하는 레코드가 나오는 것이다. 이처럼 내용에 의한 참조는 ID나 포인터 대신 특정한 값을 기준으로 데이터를 참조하는 것을 말한다.
이는 우리가 흔히 아는 "포인터로 참조"하는 것과 대비된다. 포인터에 의한 참조는 레코드 ID와 같은 식별자를 이용해 데이터를 참조하는 방식이다. 반면, "내용에 의한 참조"는 데이터를 찾기 위해 그 데이터의 내용을 직접 비교하고 일치 여부를 확인한다.
ex)
- 포인터에 의한 참조 : DB에서 각 레코드에는 고유한 ID가 있으니 이 id를 사용해 데이터를 참조하거나 다른 테이블과 연결한다. (외래키 관계 등)
- 내용에 의한 참조 : 데이터 자체의 값을 기준으로 데이터를 참조한다. 예를 들어, 이메일 주소를 기준으로 데이터를 연결한다면, 특정 사용자의 ID대신 사용자의 이메일 주소 값 그 자체를 통해 데이터를 참조한다.
장점
- 직관적인 참조 : 데이터 자체를 사용하기 때문에 직관적으로 이해하기 쉽고 명확한 참조가 가능하다.
- 데이터 중복 최소화 : 중복된 식별자나 별도의 포인터 없이 데이터를 직접 참조해 일관성을 유지한다.
- 간단한 쿼리 : 복잡한 관계를 만들지 않고도 데이터를 직접적으로 참조하고 검색 가능하다.
단점
그러나 내용 자체를 비교해야 하기 때문에 처리 속도나 성능에서 불리하다. 특히 대규모 데이터셋에서는 내용 비교가 복잡해질 수 있어서 인덱스를 사용하지 않으면 검색 속도가 느려질 수 있다.
'1일 1개념정리 (24년 8월~) > 데이터베이스' 카테고리의 다른 글
1일1개 (74) - 내 통장이 사실은 무한 ATM ? (0) | 2024.11.07 |
---|---|
1일1개 (66) - 아니 충돌 안난다고요 vs 아니 충돌 잘난다고요 (1) | 2024.10.21 |
1일1개 (49) - 스키마랑 테이블 같은 거 아닌가요 ? (0) | 2024.10.03 |
1일1개 (43) - DB key (0) | 2024.09.27 |
1일1개 (41) - SQL 레퍼런스 (0) | 2024.09.23 |