웹사이트 검색

데이터베이스 체크포인트


소개

이 체크포인트는 데이터베이스를 정의하고 일반적인 데이터베이스 관리 시스템을 도입한 데이터베이스 소개 기사에서 배운 내용을 평가하는 데 도움을 주기 위한 것입니다. 이 체크포인트를 사용하여 이러한 주제에 대한 지식을 테스트하고, 주요 용어 및 명령을 검토하고, 지속적인 학습을 위한 리소스를 찾을 수 있습니다.

데이터베이스는 논리적으로 모델링된 정보 또는 데이터 모음입니다. 사람들이 웹사이트, 애플리케이션 및 클라우드와 관련하여 "데이터베이스\를 언급할 때 종종 컴퓨터에 저장된 데이터를 관리하는 컴퓨터 프로그램을 의미합니다. 이러한 프로그램은 공식적으로 데이터베이스 관리 시스템 으로 알려져 있습니다. (DBMS)는 다른 프로그램(예: 웹 서버 및 프런트 엔드 프레임워크)과 결합하여 프로덕션 준비가 된 응용 프로그램을 형성할 수 있습니다.

이 체크포인트에는 소개 기사의 중심 아이디어를 종합하는 두 개의 섹션이 있습니다. 데이터베이스가 무엇인지에 대한 간략한 설명(관계형 및 비관계형 데이터베이스에 대한 하위 섹션 포함)과 다음을 통해 DBMS와 상호 작용하는 방법에 대한 섹션입니다. 명령줄 또는 그래픽 사용자 인터페이스. 이러한 각 섹션에는 지식을 테스트하는 데 도움이 되는 대화형 구성 요소가 있습니다. 이 체크포인트가 끝나면 데이터베이스 관리 시스템, 완전 관리형 데이터베이스 및 백엔드 데이터베이스로 앱 구축에 대해 계속 학습할 수 있는 기회를 찾을 수 있습니다.

자원

  • 데이터베이스 소개
  • SQL 제약 이해
  • SQLite vs MySQL vs PostgreSQL: 관계형 데이터베이스 관리 시스템 비교
  • NoSQL 데이터베이스 관리 시스템 및 모델 비교
  • Ubuntu 22.04에서 Redis를 설치하고 보호하는 방법
  • MongoDB에서 CRUD 작업을 수행하는 방법

데이터베이스란?

데이터베이스는 논리적으로 모델링된 정보 모음이며 데이터베이스 관리 시스템은 대부분의 사람들이 \데이터베이스가 뭔지 알아!\라고 생각할 때 생각하는 것입니다. 정보와 상호 작용하도록 설계된 컴퓨터 프로그램인 데이터베이스 관리 시스템(DBMS)을 사용하여 데이터베이스에 저장된 정보에 액세스하고 조작합니다.

다음 용어를 정의한 다음 드롭다운 기능을 사용하여 작업을 확인하십시오.

복제는 여러 개별 데이터베이스에서 데이터를 동기화하는 방식을 의미합니다. 이 방법은 중복성을 제공하고 확장성을 개선하며 읽기 대기 시간을 줄입니다.

데이터베이스 샤딩물리적 샤드라는 별도의 노드에 분산되는 논리적 샤드라는 청크로 데이터를 분리하는 아키텍처 방식입니다. 이 사례에 대한 자세한 내용은 데이터베이스 샤딩 이해에 대한 기사를 검토할 수 있습니다.

데이터베이스 시스템에 사용되는 세 가지 일반적인 관계형 모델이 있습니다.

Relational Model Relationship
One-to-one In a one-to-one relationship, rows in one table (sometimes called the parent table) are related to one and only one row in another table (sometimes called the child table).
One-to-many In a one-to-many relationship, a row in the initial table (sometimes called the parent table) can relate to multiple rows in another table (sometimes called the child table).
Many-to-many In a many-to-many relationship, rows in one table can related to multiple rows in the other table, and vice versa. While these tables may also be referred to as parent and child tables, the multidirectional relationship does not necessitate a hierarchical relationship.

이러한 관계형 모델은 데이터베이스가 서로 관련되는 방식을 구성합니다.

데이터베이스 관리에는 관계형 및 비관계형 데이터베이스의 두 가지 범주가 있습니다. 다음 하위 섹션에서는 각 유형과 해당 유형에 대한 공통 DBMS에 대해 알아봅니다.

관계형 데이터베이스

관계형 데이터베이스테이블로 인식할 수 있는 관계를 통해 정보를 구성합니다.

관계는 튜플 집합 또는 테이블의 행이며 각 튜플은 속성 집합 또는 열을 공유합니다. 튜플은 테이블이 보유하는 데이터 유형의 고유한 인스턴스인 반면 속성은 열에서 허용되는 데이터 유형을 지정합니다.

기본 키는 관계형 테이블의 각 행을 고유하게 식별하는 열을 의미하는 반면, 외래 키는 순서대로 두 번째 관계에 삽입된 기본 키의 복사본입니다. 두 테이블 간의 관계를 생성합니다.

정보가 데이터베이스에 저장되고 관계로 구성되면 구조화된 정보 요청을 만드는 쿼리를 통해 정보에 액세스할 수 있습니다. 많은 관계형 데이터베이스는 일반적으로 SQL이라고 하는 Structured Query Language를 사용하여 데이터베이스에 대한 쿼리를 관리합니다.

데이터베이스를 설계할 때 SQL 제약 조건을 사용할 수 있습니다. 이러한 제약은 테이블의 데이터에 대해 수행할 수 있는 변경 사항에 대한 제한을 부과합니다.

  • 비즈니스 규칙: 제약 조건을 통해 데이터베이스 관리자는 데이터베이스가 비즈니스 요구와 기대를 충족하는 정의된 정책 및 절차에 부합하는지 확인할 수 있습니다.
  • 데이터 무결성: 데이터 입력은 입력 오류가 발생하기 쉬우므로 제약 조건은 올바른 데이터를 보장하기 위한 추가 매개변수를 제공합니다.

  • PRIMARY KEY는 지정된 열의 모든 항목이 고유해야 하고 NULL이 아니어야 하며 해당 열을 사용하여 테이블의 각 개별 행을 식별할 수 있습니다.
  • FOREIGN KEY는 지정된 열의 모든 항목이 다른 테이블의 특정 열에 이미 존재해야 합니다.
  • UNIQUE는 주어진 열에 중복 값이 추가되는 것을 금지합니다.
  • CHECK는 조건자로 알려진 열에 대한 요구 사항을 정의하며 여기에 입력된 모든 값은 충족해야 합니다.
  • NOT NULLNULL 값이 지정된 열에 추가되는 것을 금지합니다.

SQL로 구축된 일부 오픈 소스 관계형 데이터베이스 관리 시스템에는 SQLite vs MySQL vs PostgreSQL: 관계형 데이터베이스 관리 시스템 비교가 포함됩니다.

각 기사를 통해 관계형 데이터베이스에 대한 용어를 개발했습니다. 다음 각 용어를 정의한 다음 드롭다운 기능을 사용하여 작업을 확인하십시오.

제약 조건은 입력할 수 있는 데이터를 제한하는 열 또는 테이블에 적용되는 모든 규칙입니다.

데이터 유형은 열에 허용되는 항목 종류를 나타냅니다.

개체 데이터베이스는 정보를 위해 개체 지향 구조를 사용합니다. PostgreSQL은 개체 데이터베이스의 일부 기능을 통합하는 관계형 데이터베이스입니다.

SQLite와 같은 서버리스 데이터베이스는 데이터베이스에 액세스하는 모든 프로세스가 데이터베이스 디스크 파일에 직접 쓰고 쓸 수 있도록 합니다. 이 동작은 다른 관계형 데이터베이스 엔진에서 구현되는 프로세스 간 통신과 대조됩니다.

서버리스 애플리케이션 실행을 연습하기 위해 서버리스 함수를 작성할 수 있습니다.

일부 숫자 데이터 유형은 부호 있음입니다. 즉, 양수와 음수를 모두 나타낼 수 있는 반면 다른 데이터 유형은 부호 없음 양수만 나타낼 수 있습니다.

이제 관계형 데이터베이스에 대해 알았으므로 이에 상응하는 비관계형 데이터베이스를 이해할 수 있습니다.

비관계형 및 NoSQL 데이터베이스

구조화되지 않은 방식으로 데이터를 저장해야 하는 경우 NoSQL 데이터베이스.

비관계형 데이터베이스에는 키-값 저장소, 열 데이터베이스, 문서 저장소, 그래프 데이터베이스. 이러한 각 모델은 수평 확장, 노드 간 최종 일관성 및 구조화되지 않은 데이터 관리를 포함하여 관계형 데이터베이스 사용 시 발생할 수 있는 문제에 주의를 기울입니다.

각 비관계형 데이터베이스 모델에는 고유한 특정 기능이 있습니다. 모델 유형을 정의한 다음 드롭다운 기능을 사용하여 작업을 확인하십시오.

키-값 데이터베이스는 키가 연관된 값을 검색하는 고유 식별자인 키-값 쌍을 포함하는 연관 배열을 저장하고 관리합니다.

열 기반 데이터베이스는 열 지향입니다. 즉, 열에 데이터를 저장합니다. 데이터는 한 열의 첫 번째 항목이 다른 열의 첫 번째 항목과 관련된 레코드 순서로 나타납니다.

문서 저장소라고도 하는 이들은 문서 형식으로 데이터를 저장하는 NoSQL 데이터베이스입니다. 각 문서에는 데이터를 구조화하기 위한 메타데이터가 포함되어 있으며 API 또는 쿼리 언어를 사용하여 문서를 검색할 수 있습니다.

그래프 데이터베이스는 문서 저장소 하위 범주이며 이 유형의 데이터베이스는 문서 간의 관계를 강조 표시합니다.

다음과 같은 대화형 드롭다운 기능을 사용하여 인기 있는 비관계형 데이터베이스 관리 시스템이 데이터베이스 모델 유형과 일치하는지에 대한 지식을 확인할 수 있습니다.

다음 데이터베이스 관리 시스템을 운영 데이터베이스 모델과 연결하십시오.

  • 레디스
  • 카우치베이스
  • 카산드라
  • 오리엔트DB

  • 몽고DB
  • Neo4j
  • MemcacheDB
  • 아파치 HBase

Operational Database Model Example DBMSs
Key-value store Redis, MemcacheDB
Columnar database Cassandra, Apache HBase
Document store MongoDB, Couchbase
Graph database OrientDB, Neo4j

관계형 데이터베이스를 사용하든 비관계형 데이터베이스를 사용하든 관계없이 스택의 일부로 데이터베이스 관리 시스템을 포함하는 애플리케이션을 구축하고 있을 가능성이 높습니다.

애플리케이션 스택 구축

데이터베이스 관리 시스템은 더 큰 응용 프로그램의 필수 요소로 가장 자주 배포됩니다. 이러한 애플리케이션은 Elastic 스택과 같이 스택이라고도 합니다.

드롭다운 기능을 사용하여 답을 얻으십시오.

LAMP는 이 스택을 구성하는 기술의 약어입니다.

  • Linux 운영 체제
  • 아파치 웹 서버
  • MySQL 데이터베이스
  • 동적 콘텐츠 처리를 위한 PHP

OpenLiteSpeed와 같은 다른 L*MP 옵션이 있습니다.

Elastic Stack은 검색 엔진이자 문서 지향 데이터베이스인 Elasticsearch를 중심으로 구축되었습니다.

애플리케이션 스택으로 원격 서버를 설정하는 경우 악의적인 간섭으로부터 시스템을 보호하기 위해 데이터를 암호화하는 것이 좋습니다. 이동 중인 데이터를 올바른 암호로만 해독할 수 있는 암호문으로 변환하는 전송 계층 보안(TLS)을 사용하여 통신을 암호화할 수 있습니다. 데이터 암호화를 제공하는 DBMS를 사용하지 않는 한 데이터베이스에 저장된 정적 데이터는 암호화되지 않은 상태로 유지됩니다.

데이터베이스를 관리하기 위해 명령줄 인터페이스 또는 그래픽 사용자 인터페이스를 통해 직접 수행하도록 선택할 수 있습니다.

DBMS에서 명령줄 사용

데이터베이스에 대한 기사를 사용하기 시작했고 다음과 같은 명령을 사용하여 명령줄에 익숙해졌습니다.

  • grep은 일반 텍스트 데이터에서 특정 텍스트 또는 문자열을 검색합니다.
  • netstat 플래그 -lnp로 네트워크 구성을 확인하여 청취 소켓(-l), 숫자 주소(- n) 및 각 소켓에 대한 프로그램의 PID 및 이름(-p).
  • systemctlsystemd 서비스를 제어합니다.

또한 데이터베이스 설치와 상호 작용하기 위해 다른 데이터베이스 관리 시스템과 함께 제공되는 명령줄 도구를 사용해 보았습니다. CLI 도구를 사용하면 데이터베이스 서버에서 명령을 실행하고 터미널 창에서 대화식으로 작업할 수 있습니다. 다음 표에는 공통 DBMS 및 관련 CLI 도구가 나열되어 있습니다.

DBMS CLI tool
MongoDB MongoDB shell
MySQL mysql
PostgreSQL psql
Redis redis-cli

Redli for Redis와 같은 일부 데이터베이스 관리 시스템을 위한 타사 명령줄 클라이언트도 있습니다.

명령줄을 사용하여 데이터베이스 시스템 작업을 수행할 때 일반적으로 해당 데이터베이스 관리 시스템의 사용자 계정과 연결된 데이터베이스별 서버 프롬프트를 엽니다. 예를 들어 MySQL 서버 프롬프트를 열고 MySQL 사용자로 로그인하는 경우 다음과 같이 데이터베이스 프롬프트를 검토합니다.

각 DBMS 명령줄 클라이언트에는 고유한 명령 구문이 있습니다.

다음 명령을 실행하여 MySQL 데이터베이스에서 이러한 제약 조건을 사용하는 방법을 배운 후:

  • CREATE DATABASE는 데이터베이스를 생성합니다.
  • USE를 사용하여 데이터베이스를 선택합니다.
  • CREATE TABLE 열에 대한 사양과 해당 열에 적용되는 제약 조건이 포함된 테이블을 생성합니다.
  • ALTER TABLEADD는 기존 테이블에 제약 조건을 추가하고 DROP CONSTRAINT는 기존 테이블에서 제약 조건을 삭제합니다.

How To Use SQL 시리즈를 통해 MySQL 데이터베이스 기술을 계속 개발할 수 있습니다.

Redis를 사용하여 다음 명령을 사용하여 Redis를 설치 및 보호하고 이름 바꾸기 명령을 실험했습니다.

  • auth는 데이터베이스 액세스를 위해 클라이언트를 인증합니다.
  • exitquit를 눌러 Redis-CLI 프롬프트를 종료합니다.
  • get 키 값을 검색합니다.
  • ping 연결을 테스트합니다.
  • set 키를 설정합니다.

그리고 MongoDB 셸에서 바이너리 JSON(BSON이라고 함)을 사용하여 다음과 같은 쿼리 필터링 방법으로 CRUD 작업을 실행했습니다.

  • count 메서드는 지정된 컬렉션의 개체 수를 확인합니다.
  • deleteOne 사양과 일치하는 첫 번째 문서를 제거합니다.
  • deleteMany 여러 개체를 한 번에 제거합니다.
  • 찾아 pretty 인쇄 기능을 사용하여 MongoDB 데이터베이스에서 문서를 검색하여 줄을 더 읽기 쉽게 만듭니다.
  • insertOne 메서드를 사용하여 개별 문서를 만듭니다.
  • insertMany단일 작업 또는 컬렉션에 여러 문서를 삽입하는 메서드
  • ObjectId 개체 식별자를 저장하기 위한 개체 데이터 유형.
  • updateOne은 지정된 키로 단일 문서를 업데이트합니다.
  • updateMany 지정된 필터와 일치하는 컬렉션의 모든 문서를 업데이트합니다.

CRUD 작업을 사용하여 많은 데이터베이스 관리 시스템에서 데이터와 상호 작용할 수 있습니다.

CRUD는 다음 네 가지 기본 데이터 작업을 설명하는 데 사용되는 약어입니다.

  • 만들기
  • 읽기
  • 업데이트
  • 삭제

명령줄에서 직접 데이터베이스를 관리하도록 선택할 수 있지만 많은 일반적인 데이터베이스 관리 시스템에 그래픽 사용자 인터페이스(GUI)를 사용할 수도 있습니다.

그래픽 사용자 인터페이스 사용

설계된 CLI 도구를 사용하지 않기로 결정한 경우 데이터베이스 작업을 위한 다양한 GUI 도구가 있습니다.

웹을 통해 MySQL 관리를 처리하려면 MySQL 서버에 원격으로 연결하는 방법을 사용할 수 있습니다.

phpMyAdmin과 마찬가지로 pgAgent로 자동 백업을 예약합니다.

MongoDB의 경우 MongoDB Compass를 데이터베이스에 액세스하기 위한 그래픽 인터페이스로 사용하는 것을 고려할 수 있습니다.

데이터베이스를 관리하기 위해 명령줄을 사용하든 그래픽 인터페이스를 사용하든 이제 데이터베이스 시스템을 관리하는 데 필요한 도구가 있습니다.

무엇 향후 계획?

데이터베이스와 널리 사용되는 데이터베이스 관리 시스템에 대한 이해가 깊어지면 데이터를 저장 및 관리하거나 데이터베이스 시스템을 사용하는 애플리케이션을 구축할 수 있습니다.

특정 데이터베이스 관리 시스템 작업에 대한 자세한 내용은 MongoDB에서 CRUD 작업을 수행하는 방법을 참조하십시오.

데이터베이스를 사용하여 앱을 빌드할 준비가 되면 일반적인 애플리케이션 스택 설정에 대한 다음 자습서를 따르십시오.

  • Ubuntu 22.04에 Linux, Apache, MySQL, PHP(LAMP) 스택을 설치하는 방법
  • Ubuntu 22.04에 Linux, Nginx, MySQL, PHP(LEMP 스택)를 설치하는 방법
  • Ubuntu 22.04에 Linux, OpenLiteSpeed, MariaDB, PHP(LOMP 스택)를 설치하는 방법

완전 관리형 데이터베이스로 앱 구축을 선호하는 경우 DigitalOcean Marketplace용 DigitalOcean 제품을 확인하세요.

데이터베이스에 대한 새로운 지식을 바탕으로 웹 서버로 클라우드 여정을 계속할 수도 있습니다.