데이터 독립성
- 소개
- 데이터 독립성이란 무엇입니까?
- 데이터 독립성 유형
소개
오늘 우리는 데이터베이스 관리 시스템의 가장 중요한 주제 중 하나 인 데이터 독립성을 다룰 것입니다. 세 가지 수준의 데이터 추상화를 구현하는 이유는 데이터 독립성을 달성하는 것뿐입니다. 데이터 독립성은 서로 다른 수준의 스키마에서 발생하는 변경 사항을 처리하는 것입니다. 데이터 독립성의 의미 외에도 여기에서 필요성과 유형에 대해 배우게됩니다. 그래서,우리가 더 이상 속히 시작하자!
데이터 독립성이란 무엇입니까?
우리 모두는 이미’데이터’와’독립성’이라는 두 용어를 별도로 잘 알고 있기 때문에 동일한 의미에서’데이터 독립성’이라는 용어 전체의 의미를 어느 정도 해독 할 수 있습니다. 이 용어 자체에서 우리는 데이터베이스에 존재하는 데이터의 독립성에 대해 이야기하고 있습니다. 즉,데이터 독립성은 사용자가 한 수준에서 스키마 정의를 변경할 수 있도록 하는 속성이며,이후 상위 수준에서 스키마 정의를 변경할 필요가 없습니다. 우리가 1 개 수준에 수정할 때,다른 수준을 방해하지 않는다 고 아주 필요하다. 정확히 말하면 데이터 독립성은 데이터베이스 아키텍처의 세 가지 수준에 있는 데이터의 독립성 또는 자립성을 의미합니다. 또한,그것을 사용하는 응용 프로그램에서 분리 된 데이터를 유지하는 데 도움이되는 것입니다. 중앙 집중식 데이터베이스 관리 시스템이 매우 우려하는 데이터 투명성의 한 유형으로 종종 간주됩니다.
데이터 독립성에 대한 더 깊은 측면을 살펴보기 전에 데이터베이스 수준에 대한 빠른 리콜을 해보자. 내부 또는 물리적 스키마는 메모리 수준에서도 데이터베이스와 직접 연결되는 첫 번째 수준입니다. 두 번째는 세 번째 수준과 첫 번째 수준 사이의 중재자 역할을하는 개념적 또는 논리적 스키마입니다. 세 번째 수준은 데이터베이스가 여러 최종 사용자에게 표시되는 방식을 지시하는 외부 스키마입니다. 라이브러리 데이터베이스의 인스턴스를 가정 할 때,이 세 가지 수준의 구현은 다소 다음과 같습니다:
내부 스키마 | 논리 스키마 | 외부 스키마 |
데이터베이스 관계의 정렬되지 않은 파일방문자의 첫 번째 열 인덱스 | 방문자(아이디:지능,이름:문자열,나이:지능,연락처:숫자,주소:문자열)책(아이디:지능,제목:문자열,저자:문자열,아이디:숫자) | 보기 1: 이 예제에서는 다음과 같은 방법을 사용할 수 있습니다.) |
데이터 독립성은 데이터를 분리하여 수준 중 하나에서 수행된 변경 내용을 수준 간 매핑에 구현합니다. 그것은 동시에 데이터베이스의 이러한 개별 수준의 자유를 유지하는 데 도움이됩니다. 데이터 독립성과 운영 독립성이 함께 어떤 관점에서 데이터 추상화 현상을 제공합니다.
데이터 독립성을 달성하는 방법?
데이터 독립성을 확보하기 위해 우리는 데이터베이스가 데이터 추상화의 요구 사항을 충족하는지 확인합니다. 쉬운 말로,데이터 추상화는 최종 사용자로부터 숨겨진 관련없는 세부 사항을 유지하는 프로세스입니다. 우리가 실사회 실재물에 관하여 생각하면,우리는 차의 보기를 가지고 갈 수 있는다. 운전자가 차를 운전할 때,그는 차를 운전하는 완전한 노하우를 가지고 있지만,어떤 이유로 그가 차를 시동 할 수없는 경우,그는 자동차 정비사의 도움이 필요합니다. 그건 그래서 드라이버만 자동차를 운전 하는 방법을 알고 있기 때문에,그는 내부 회로 문제를 처리 하는 방법을 알고 하지 않습니다.,내부 회로 되 고 이유 및 자동차의 메커니즘 그에서 숨겨집니다. 마찬가지로 내부 구조는 프로그래머와 최종 사용자에게 보이지 않습니다. 데이터베이스의 가시성을 제한하는 이 속성을 데이터 추상화라고 합니다. 데이터베이스는 최대 세 가지 수준의 추상화를 보유합니다. 이 세 가지 수준은 다음과 같습니다:
- 물리적 수준(내부 스키마)
- 개념적 수준(논리 수준)
- 뷰 수준
물리적 수준의 데이터 추상화는 내부 스키마를 처리합니다. 이 추상화 수준은 데이터베이스의 데이터가 저장되는 방법을 정의합니다. 그것은 최종 사용자 및 프로그래머가 안으로 흥미있지 않을 데이타베이스의 상세하고 복잡한 자료 구조를 저장한다. 또한 데이터 추상화의 가장 낮은 수준으로 간주됩니다.
데이터 추상화의 중간 수준인 개념적 수준은 스키마의 논리적 수준에 대한 것입니다. 이전 수준은’어떻게?’. 마찬가지로,이 수준은’왜?’그것은 무엇을 어떤 유형의 데이터가 데이터베이스에 저장되어 있는지 설명합니다.
데이터 추상화의 마지막 수준과 최고 수준은 뷰 수준입니다. 이 수준은 다른 사용자가 데이터를 볼 수있는 방법을 알려줍니다. 이 데이터베이스와의 사용자 상호 작용에 대한 책임이 있습니다.
우리는 우리가 상점의 고객의 세부 사항을 저장 한 매우 낮은 규모의 예를 보자. 따라서 물리적 수준에 대해 이야기하면 데이터는 바이트,기가 바이트,테라 바이트 등의 메모리 블록으로 저장됩니다. 기본적으로 복잡한 메모리 저장을 다룹니다. 이 정보는 프로그래머가 볼 수 없습니다. 논리 수준은 입력한 고객 세부 정보 및 해당 데이터 유형을 설명합니다. 논리적 관계는 프로그래밍 언어를 사용하여 이 수준의 데이터 간에 구현됩니다. 이 수준은 주로 프로그래머가 처리합니다. 보기 수준에서 사용자는 사용자 인터페이스를 통해 시스템과 상호 작용하여 양식 형식이나 다른 집합 형식으로 데이터를 입력합니다. 이제 각 레벨은 서로 독립적이어서 한 레벨에서 변경할 때 다음 높은 레벨에서 변경할 필요가 없습니다. 그리고 이것이 데이터 독립성이 하는 일입니다.
이 세 가지 수준의 데이터 추상화를 유지하기 위해 우리는 데이터 독립성이 아니라면 큰 번거 로움이 될 수있는 데이터베이스의 한 수준에서 변경해야 할 수도 있습니다. 당신은 물리적 스키마에 약간의 변화를 반영하기 위해 전체 응용 프로그램을 변경하는 것은 시간과 프로그래밍의 관점에서 우리의 호의에 방법이 없다는 점에 동의 할 것이다. 데이터 독립성을 통해 한 수준에서 수정을 수행하면 데이터베이스의 다른 수준에 영향을 미치지 않습니다. 데이터 추상화의 세 가지 수준에 기초하여,데이터 독립성은 두 가지 유형으로 분기된다.
데이터 독립성 유형
두 가지 유형의 데이터 독립성과 속성에 대해 알아보겠습니다. 두 가지 범주는 다음과 같습니다:
- 물리적 데이터 독립성
- 논리적 데이터 독립성
물리적 데이터 독립성: 물리적 데이터 독립성 하에서 우리는 응용 프로그램을 변경하지 않고 물리적 스키마를 변경할 수있는 자유를 얻습니다. 데이터베이스 구조의 개념적 수준에서 내부 수준을 분리하는 역할을 합니다. 물리적 데이터 독립성을 사용하면 데이터베이스의 논리적 구조에 대한 세부 정보를 지정하는 데 반드시 필요하지 않은 데이터베이스의 논리적 설명 또는 개요를 제공할 수 있습니다. 물리적 데이터 독립성에 따라 내부 수준에서 변경한 내용은 개념 수준 또는 뷰 수준 스키마의 정의를 변경하지 않아야 합니다.
물리적 독립성을 통해 파일 저장 구조,해시 알고리즘,압축 기술,저장 장치,데이터베이스 위치,액세스 방법,인덱스 등을 수정할 수 있습니다. 따라서 기본적으로 효율적인 메모리 저장 기술의 구현을 다룹니다. 이 수준에서 변경한 내용은 데이터베이스의 내부 수준과 개념 수준 간의 매핑에 적용됩니다. 도입된 수정 사항은 지역화되어야 합니다. 물리적 데이터 독립성은 물리적 수준에 의해 달성되고 데이터베이스의 개념적 수준에서 내부 수준으로의 변환이 수행됩니다.
때때로,우리는 메모리 관리의 관점에서 우리의 메모리 시스템의 성능을 향상시키기 위해 내부 수준을 업데이트해야합니다. 따라서 물리적 데이터 독립성은 우리의 요구 사항에 따라 스토리지 기술을 변경하는 것이 효율적인 데이터 수집이 가능해야 한다는 사실을 근거로 중요한 역할을 합니다.
논리적 데이터 독립성: 논리적 데이터 독립성은 외부 뷰 및 외부 프로그램을 변경하지 않고도 스키마의 개념적 수준을 변경할 수있는 자유를 제공합니다. 이 수준에서 수행 된 수정 사항은 논리 및 끝보기 수준 매핑에 적용됩니다. 개념적 수준에 크게 의존하는 응용 프로그램은 물리적 데이터 독립성과 비교하여 논리적 데이터 독립성을 달성하기 어렵게 만듭니다. 데이터베이스의 논리적 구조의 사소한 또는 큰 변화는 우리뿐만 아니라 프로그램을 변경해야합니다. 따라서 논리적 데이터 독립성을 달성하는 것은 다소 어려울 수 있습니다. 논리적 데이터 독립성은 엔드 뷰 수준과 개념 수준 간의 분리를 제어합니다.
논리적 데이터 독립성을 통해 속성,엔티티 또는 관계를 추가,수정 또는 삭제하는 등의 변경을 수행 할 수 있습니다. 이러한 수정 작업을 수행하는 것은 응용 프로그램을 다시 작성하는 것이 아니라 프로그램에서 해당 변경을 수행하는 것입니다. 그것은 외부 레이어에 영향을주지 않고 하나에 두 개의 레코드를 병합 할 수 있습니다. 기존 레코드를 두 개로 분할하려는 경우 지정된 데이터베이스의 최종 사용자 뷰 수준 구조를 방해하지 않고도 가능합니다.
개념 수준을 적시에 수정하여 최신 정보를 유지하는 것이 필수적입니다. 이 때문에 논리적 데이터 독립성이 중요한 역할을 수행한다고 합니다. 그것은 뿐만 아니라 성능 및 속도 향상 하는 데 도움이 하지만 또한 훨씬 더 세밀 하 고 더 신뢰할 수 있는 데이터베이스를 만드는 데 도움이 될 것으로 밝혀졌습니다.
데이터 독립성의 장점
데이터 독립성은 데이터베이스 관리 시스템의 가장 중요한 특징 중 하나이기 때문에 논쟁의 여지가 없습니다. 데이터 독립성의 필요성을 정당화하는 데는 여러 가지 이유가 있습니다. 그래서,우리가 디비전스의 요구를 만족시키다 장점을 살펴 보자.
- 데이터 품질–데이터 독립성은 데이터베이스에 저장된 데이터의 품질을 높이는 데 도움이 됩니다. 데이터베이스 구조를 수정하는 것이 데이터 독립성과 함께 더욱 편리해지기 때문에 데이터 저장이 효율적입니다. 그것은 전적인 또는 손상되지 않은 상태의 향상을 용이하게합니다. 따라서 저장된 데이터의 품질이 향상됩니다.
- 비용 효율적인 유지 보수-데이터 독립성은 하나의 회로도 수준에서 변경이 필요한 경우 데이터베이스의 모든 회로도 수준에서 변경의 문제를 겪고에서 우리를 저장합니다. 따라서,우리의 데이터베이스를 유지하는 것은 좋은 정도로 저렴한된다.
- 보안 측면-데이터베이스 차폐를위한 표준 및 프로토콜의 적절한 시행이 더 쉬워집니다. 따라서 데이터 독립성은 실제로 데이터베이스 보안을 향상시키는 데 도움이됩니다.
- 일반 구조에 중점을 둔 개발자:개발자는 내부 이식에 신경 쓰지 않고 논리 구조를 처리하고 업데이트하는 데에만 집중할 수 있습니다. 변경 사항은 개념적 수준 및 내부 수준 매핑에 의해 직접 흡수됩니다.
- 데이터 불일치 감소-데이터 독립성은 호환성을 높이기 위해 데이터베이스 구조를 수정하는 것을 지원합니다. 이 데이터 부조화를 제어하는 데 도움이됩니다.
- 성능 향상–데이터 독립성은 데이터 추상화의 원인을 불러옵니다. 게다가,그것은 새로운 변화의 원활한 구현을 용이하게한다. 결과적으로 데이터 액세스,검색 또는 데이터 수정이 빠르고 편리 해집니다. 이것이 데이터 독립성이 데이터베이스 성능을 향상시키는 데 유용한 방법입니다.
데이터 독립성의 장점을 강조하는 위에서 언급한 점들을 추론할 수 있듯이,데이터 독립성은 파일 기반 시스템의 단점을 극복하는 데이터 독립성의 무기 중 하나로 작용한다. 스키마 정의 및 데이터 조직의 변경 사항에 대한 사용자 응용 프로그램의 면역으로 볼 수 있습니다. 모든 동전은 같은 너무이 간다,두 얼굴을 가지고있다. 이제 당신은 데이터베이스의 안정성과 보안을 확보하는 열쇠가되는 데이터 독립성에 대해 꽤 확신,당신은 그 어두운 측면에 대해 궁금해야합니다. 그런 다음 데이터 독립성을 다루는 동안 일반적으로 발생하는 두 가지 주요 단점이 있음을 알려 드리겠습니다. 첫 번째는 데이터 독립성을 채택 할 때 복잡성이 증가한다는 것입니다. 데이터 독립성을 최적으로 사용할 수 있도록 데이터베이스를 신중하게 설계해야 합니다. 두 번째 단점은 전자와 관련이 있습니다. 응용 프로그램은 데이터의 논리적 스키마에 크게 의존합니다. 따라서 개념적 구조를 변경하면 해당 응용 프로그램을 변경해야합니다.
이 블로그가 데이터 독립성에 대한 적절한 빛을 비추고 디지털 데이터에 대한 지식에 가치를 더할 수 있기를 바랍니다. 데이터 독립성 외에도 데이터베이스에 큰 영향을 미치는 몇 가지 다른 요소가 있습니다. 이러한 관련 주제에 대한 이해를 얻으려면 훌륭한 학습의 다른 블로그를 참조 할 수 있습니다. 계속 지켜봐 주시고 우리와 함께 학습 여행을 계속하십시오. 자격증을 취득할 수 있는 좋은 기회가 주어질 수 있습니다. 우리는 하나 또는 다른 방법으로 당신을 도움이 될 것입니다 수많은 인증 과정을 가지고있다. 그래서,당신은 다른 무엇을 기다리고 있는가? 가서 여기에 새로운 과정을 위해 자신을 등록! 행복한 학습!
Leave a Reply