일반적인 데이터베이스 기반 문제

4092 단어
일반적인 데이터베이스 관련 질문:
(1) 저장 프로세스란 무엇입니까?어떤 장단점이 있습니까?저장 프로세스는 사전 컴파일된 SQL 명령문입니다.저장 프로세스는 하나의 기록집이라고 할 수 있다. 이것은 일부 T-SQL 문장으로 구성된 코드 블록이다. 이런 T-SQL 문장 코드는 하나의 방법처럼 일부 기능(단표나 여러 표에 대한 추가 삭제와 수정)을 실현한 다음에 이 코드 블록의 이름을 지어 이 기능을 사용할 때 그를 호출하면 된다.
  • 저장 프로세스는 미리 컴파일된 코드 블록으로 실행 효율이 비교적 높다
  • 대량의 T 를 대체하는 스토리지 프로세스네트워크 트래픽을 줄이고 통신 속도를 향상시키는 SQL 문
  • 저장 프로세스를 통해 권한이 없는 사용자가 데이터베이스에 간접적으로 접근할 수 있도록 함으로써 어느 정도 데이터 안전을 확보할 수 있다
  • (2) 색인은 무엇입니까?어떤 작용과 장단점이 있습니까?색인은 바로 검색표의 데이터를 가속화시키는 방법이다.데이터베이스의 인덱스는 책의 인덱스와 유사하다.책에서 색인은 사용자가 책 전체를 다 읽지 않아도 필요한 정보를 신속하게 찾을 수 있도록 한다.데이터베이스에서 인덱스도 데이터베이스 프로그램이 표의 데이터를 신속하게 찾을 수 있도록 하고 전체 데이터베이스를 스캔할 필요가 없다.특징:
  • 인덱스로 데이터베이스 검색 속도 향상
  • 인덱스는 데이터베이스 삽입, 수정, 삭제 등 유지보수 작업의 속도를 낮춘다
  • 데이터베이스 테이블의 줄마다 데이터의 유일성을 보장하는 고유성 인덱스 만들기
  • 인덱스를 사용하면 조회 과정에서 최적화 숨김기를 사용하여 시스템의 성능을 향상시킬 수 있다.
  • 인덱스를 만들고 유지하는 데 시간이 걸리고 데이터 양이 증가함에 따라 증가
  • 인덱스는 물리적 공간을 차지해야 한다. 데이터 테이블이 데이터 공간을 차지하는 것을 제외하고 모든 인덱스는 일정한 물리적 공간을 차지해야 한다. 만약에 컬렉션 인덱스를 구축하려면 필요한 공간이 더욱 커진다
  • (3) 사무가 무엇입니까?트랜잭션(Transaction)은 병렬 제어의 기본 단위입니다.이른바 사무란, 그것은 하나의 조작 서열이다. 이 조작들은 모두 집행되거나, 모두 집행되지 않으며, 그것은 분할할 수 없는 작업 단위이다.예를 들어 은행 이체 업무: 한 계좌에서 돈을 공제하고 다른 계좌에서 돈을 늘리면 이 두 가지 조작은 모두 집행하거나 집행하지 않는다.그러니 그것들을 하나의 일로 여겨야 한다.사무는 데이터베이스에서 데이터의 일치성을 유지하는 단위로 모든 사무가 끝날 때 데이터의 일치성을 유지할 수 있다.위에서 설명한 바와 같이 사무의 제기는 주로 병발 상황에서 데이터의 일치성을 유지하는 문제를 해결하기 위한 것이다.사무는 다음과 같은 네 가지 기본 특징을 가지고 있다.
  • Atomic(원자성): 사무에 포함된 조작은 하나의 논리 단원으로 간주되고 이 논리 단원의 조작은 모두 성공하거나 모두 실패한다.
  • Consistency(일치성): 합법적인 데이터만 데이터베이스에 쓸 수 있고 그렇지 않으면 업무는 그것을 최초 상태로 되돌려야 한다.
  • Isolation(격리성): 사무는 여러 사용자가 같은 데이터에 대해 병렬 접근을 허용하고 데이터의 정확성과 완전성을 파괴하지 않는다.동시에 병행 사무의 수정은 다른 병행 사무의 수정과 서로 독립되어야 한다.
  • Durability(지속성): 업무가 끝난 후에 업무 처리의 결과는 반드시 고체화되어야 한다.

  • (4) 데이터베이스의 낙관적 자물쇠와 비관적 자물쇠는 무엇입니까?DBMS(Database Management System)의 동시 제어 작업은 여러 트랜잭션이 데이터베이스에서 동일한 데이터를 동시에 액세스할 때 트랜잭션의 격리성과 일관성, 데이터베이스 일관성을 저해하지 않도록 하는 것입니다.낙관적 병발 제어(락관쇄)와 비관적 병발 제어(비관쇄)는 병발 제어가 주로 사용하는 기술 수단이다.비관 자물쇠: 병발 충돌이 발생할 것이라고 가정하고 데이터의 완전성을 위반할 수 있는 모든 조작 낙관 자물쇠를 차단한다. 병발 충돌이 발생하지 않을 것이라고 가정하고 제출 작업을 할 때만 데이터의 완전성을 위반하는지 검사한다.
    (5) 색인 조회를 사용하면 반드시 조회의 성능을 향상시킬 수 있습니까?왜 보통 색인을 통해 데이터를 조회하는 것이 전체 표를 스캔하는 것보다 빠릅니까?하지만 우리도 그 대가를 알아야 한다.인덱스는 공간을 저장하고 정기적으로 유지보수해야 하며, 표에 기록된 증감이나 인덱스 열이 수정될 때마다 인덱스 자체도 수정된다.이것은 모든 기록의 INSERT, DELETE, UPDATE가 이를 위해 4, 5번의 디스크 I/O를 더 지불할 것이다. 인덱스는 추가 저장 공간과 처리가 필요하기 때문에 불필요한 인덱스는 오히려 조회 반응 시간을 느리게 할 수 있다.색인 질의를 사용하여 반드시 질의의 성능을 향상시킬 수 있는 것은 아닙니다. 인덱스 범위 질의(INDEX RANGE SCAN)는 두 가지 조건에 적용됩니다.
  • 한 범위의 검색을 바탕으로 일반 검색 반환 결과 집합은 표에 기록된 수량의 30%
  • 보다 작다.
  • 고유하지 않은 인덱스 기반 검색
  • (6) 하이퍼키, 후보키, 메인키, 외키는 각각 무엇입니까?하이퍼키: 관계식에서 유일하게 원조를 표시할 수 있는 속성 집합을 관계 모드의 하이퍼키라고 부른다.하나의 속성은 하나의 하이퍼키로 할 수 있고, 여러 개의 속성을 한데 조합해도 하나의 하이퍼키로 할 수 있다.하이퍼키는 후보 키와 메인 키를 포함한다.후보 키: 최소 하이퍼키입니다. 즉, 불필요한 요소가 없는 하이퍼키입니다.메인 키: 데이터베이스 테이블에서 저장된 데이터 대상에 대해 유일하고 완전한 표지를 주는 데이터 열이나 속성의 조합.하나의 데이터 열에는 하나의 주 키만 있을 수 있고, 주 키의 수치를 잃어버릴 수 없다. 즉, 빈 값(Null)이 될 수 없다.외부 키: 한 테이블에 존재하는 다른 테이블의 메인 키를 이 테이블의 외부 키라고 합니다.
    (7) 보기가 무엇입니까?그리고 보기의 사용 장면에는 어떤 것들이 있나요?보기는 가상 표로서 물리 표와 같은 기능을 가지고 있다.보기를 늘리고, 고치고, 검사하고, 조작할 수 있으며, 보통 한 테이블 또는 여러 테이블의 줄이나 열의 서브집합을 시도할 수 있다.뷰 수정은 기본 테이블에 영향을 주지 않습니다.그것은 여러 테이블의 조회보다 우리가 데이터를 얻는 것을 더욱 쉽게 한다.일부 필드만 방문자에게 노출되기 때문에 허표를 만들어서 보기를 만든다.조회의 데이터는 서로 다른 표에서 유래한 것이고 조회자는 통일된 방식으로 조회하기를 원한다. 그러면 하나의 보기를 구축할 수 있고 여러 개의 표 조회 결과를 연합할 수 있다. 조회자는 보기에서 데이터를 직접 얻기만 하면 된다. 데이터가 서로 다른 표에서 유래한 차이를 고려할 필요가 없다.
    (8)drop, delete와truncate의 차이점과 SQL의 사용drop,delete,truncate는 모두 삭제를 표시하지만 이 세 가지는 약간의 차이deletetruncate는 테이블의 데이터만 삭제하고 테이블의 구조 속도는 삭제하지 않는다. 일반적으로 drop>truncate>deletedelete문구는 dml이고 이 조작은 롤백 segement에 넣고 사무를 제출한 후에 효력이 발생한다.상응하는 trigger가 있으면 실행할 때 터치됩니다.truncate,drop는ddl로 조작이 즉시 적용되며 원래 데이터는 롤백 segment에 넣지 않고 굴러갈 수 없습니다.Trigger를 실행하지 않습니다.
  • 시계가 필요 없을 때drop
  • 일부 데이터 줄을 삭제하고 싶을 때delete를 사용하고 where 자구
  • 를 달아라
  • 표를 보존하고 모든 데이터를 삭제할 때truncate
  • 좋은 웹페이지 즐겨찾기