데이터베이스 체크포인트

소개

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

A database is any logically modeled collection of information or data. When people refer to a “database” in the context of websites, applications, and the cloud, they often mean a computer program that manages data stored on a computer. These programs, known formally as database management systems (DBMS), can be combined with other programs (like a web server and a front-end framework) to form production-ready applications.

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

자료

데이터베이스란?

A database is any logically modeled collection of information, and a database management system is what most people think of when they think “I know what a database is!” You use a database management system (DBMS), which is a computer program designed to interact with the information, to access and manipulate the information stored in your database.

알아야 할 용어들

다음 용어를 정의하고 나서 드롭다운 기능을 사용하여 작업을 확인하세요.

Replication

복제은 데이터를 여러 별도의 데이터베이스에 동기화하는 실천을 나타냅니다. 이 실천은 중복성을 제공하며 확장성을 향상시키고 읽기 지연을 줄입니다.

Sharding

데이터베이스 샤딩은 데이터를 논리적인 샤드라고 불리는 청크로 분리하고 이를 물리적인 샤드라고 불리는 별도의 노드에 분산하는 구조적인 실천입니다. 이 실천에 대한 자세한 내용은 데이터베이스 샤딩 이해를 참조하십시오..

잠금 시스템을 위한 데이터베이스 시스템으로 사용되는 세 가지 일반적인 관계 모델이 있습니다:

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에 대해 알아보게 될 것입니다.

관계형 데이터베이스

A relational database organizes information through relations, which you might recognize as a table.

자가진단

What are the elements that make up a relation?

A relation is a set of tuples, or rows in a table, with each tuple sharing a set of attributes, or columns. A tuple is a unique instance of what type of data the table holds, whereas an attribute specifies the data type for what is allowed in the column.

What is the difference between a primary key and a foreign key?

A primary key refers to the column that will uniquely identify each row in a relational table, whereas a foreign key is a copy of the primary key inserted into a second relation in order to create a relationship between two tables.

정보가 데이터베이스에 저장되고 관계로 구성될 때, 정보에 대한 구조화된 요청을 수행하는 쿼리를 통해 액세스할 수 있습니다. 많은 관계형 데이터베이스는 데이터베이스 쿼리를 관리하기 위해 일반적으로 구조화된 쿼리 언어로 알려진 SQL을 사용합니다.

데이터베이스를 설계할 때 SQL 제약 조건을 사용할 수 있습니다. 이러한 제약 조건은 테이블의 데이터에 대한 변경이 어떻게 이루어질지에 대한 제한을 부과합니다.

자가진단

Why might you impose constraints on your database?
  • 비즈니스 규칙: 제약 조건을 사용하면 데이터베이스 관리자가 비즈니스의 요구 사항과 기대에 부합하는 정책 및 절차를 준수할 수 있도록 할 수 있습니다.
  • 데이터 무결성: 데이터 입력은 입력 오류에 취약하므로 제약 조건은 올바른 데이터를 보장하기 위한 추가 매개 변수를 제공합니다.
What are the five constraints that are formally defined by the SQL standard?
  • PRIMARY KEY는 주어진 열의 모든 항목이 고유하고 NULL이 아닌 것을 요구하며, 해당 열을 사용하여 테이블의 각 개별 행을 식별할 수 있도록 합니다.
  • FOREIGN KEY는 주어진 열의 모든 항목이 다른 테이블의 특정 열에 이미 존재해야 함을 요구합니다.
  • UNIQUE는 주어진 열에 중복 값이 추가되지 않도록 합니다.
  • CHECK는 열에 대한 요구 사항을 정의하며, 해당 요구 사항은 입력된 각 값이 충족해야 하는 조건입니다.
  • NOT NULL은 주어진 열에 NULL 값이 추가되지 않도록 합니다.

SQL로 구축된 일부 오픈 소스 관계형 데이터베이스 관리 시스템에는 MySQL, MariaDB, PostgreSQL, SQLite가 포함됩니다. 관계형 데이터베이스에 대해 더 배우려면 관계형 데이터베이스 이해하기를 참고하고, 일반적인 관계형 DBMS를 검토하려면 SQLite vs MySQL vs PostgreSQL: 관계형 데이터베이스 관리 시스템 비교를 참고하십시오.

알아야 할 관계형 데이터베이스 용어

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

Constraint

A constraint is any rule applied to a column or table that limits what data can be entered into it.

Data Types

A data type dictates what kind of entries are allowed in a column.

Object Database

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

Serverless

A serverless database, like SQLite, allows any process that accesses the database to write and write to the database disk file directly. This behavior is in contrast to the interprocess communication that is implemented by other relational database engines.

서버리스 응용 프로그램을 실행해 보기 위해 서버리스 함수를 작성할 수 있습니다.

Signed and Unsigned Integers

일부 숫자 데이터 유형은 부호가 있는 것으로, 양수와 음수 모두를 표현할 수 있습니다. 다른 일부 숫자 데이터 유형은 부호가 없으며 양수만을 표현할 수 있습니다.

관계형 데이터베이스에 대해 알게 되었으므로, 비관계형 데이터베이스에 대한 이해도 가능합니다.

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

비구조적인 방식으로 데이터를 저장해야 할 경우, 비관계형 데이터베이스는 대안적인 모델을 제공합니다. 비관계형 데이터베이스는 SQL을 사용하지 않기 때문에 때로는 NoSQL 데이터베이스로도 불립니다.

비관계형 데이터베이스에는 다양한 옵션이 있습니다. 예를 들어 키-값 저장소, 열 지향 데이터베이스, 문서 저장소그래프 데이터베이스 등이 있습니다. 이러한 모델들은 관계형 데이터베이스 사용 시 발생할 수 있는 문제들, 예를 들어 수평 확장, 노드 간의 최종 일관성 및 비구조적 데이터 관리 등을 다룹니다.

비관계형 데이터베이스 용어 알아보기

비관계형 데이터베이스 모델마다 독특한 기능이 있습니다. 각 모델의 유형을 정의한 다음 드롭다운 기능을 사용하여 확인해보세요.

Key-value databases

키-값 데이터베이스는 키와 값의 쌍인 연관 배열을 저장하고 관리합니다. 여기서 키는 고유 식별자로, 해당 값에 접근할 수 있습니다.

Columnar databases

열 지향 데이터베이스는 데이터를 열 단위로 저장하는 방식입니다. 데이터는 레코드 순서로 나타나며, 한 열의 첫 번째 항목은 다른 열의 첫 번째 항목과 관련이 있습니다.

Document-oriented databases

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

Graph databases

그래프 데이터베이스는 문서 저장소의 하위 범주로, 이러한 데이터베이스는 문서 간의 관계를 강조합니다.

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

스스로 확인하기

일치하는 데이터베이스 관리 시스템을 해당 운영 데이터베이스 모델에 매핑하십시오.

  • Redis
  • Couchbase
  • Cassandra
  • OrientDB
  • MongoDB
  • Neo4j
  • MemcacheDB
  • Apache HBase
Compare your answers using the dropdown feature.
Operational Database Model Example DBMSs
Key-value store Redis, MemcacheDB
Columnar database Cassandra, Apache HBase
Document store MongoDB, Couchbase
Graph database OrientDB, Neo4j

관계형 또는 비관계형 데이터베이스를 사용하더라도, 데이터베이스 관리 시스템을 스택의 일부로 포함하는 응용 프로그램을 개발하는 것이 일반적입니다.

응용 프로그램 스택 구축

데이터베이스 관리 시스템은 보통 더 큰 응용 프로그램의 필수 요소로서 배포됩니다. 이러한 응용 프로그램은 때때로 스택으로 불리며, LAMP 스택 또는 탄력적인 스택과 같이 불릴 때가 있습니다.

자가 진단

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

What makes up a LAMP stack?

LAMP는 이 스택을 구성하는 기술의 머릿글자입니다:

  • Linux 운영 체제
  • Apache 웹 서버
  • MySQL 데이터베이스
  • PHP 동적 콘텐츠 처리

다른 L*MP 옵션도 있습니다. 예를 들어 LEMP 스택E가 Nginx를 나타내며 LOMP 스택OOpenLiteSpeed를 나타냅니다.

What makes up Elastic stack?

Elastic 스택은 Elasticsearch를 중심으로 구축되었으며, 이는 검색 엔진이자 문서 지향형 데이터베이스입니다.

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

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

DBMS와 함께 명령 줄 사용

당신은 클라우드 서버 소개 기사를 통해 리눅스 명령 줄을 사용하기 시작했으며, 웹 서버 솔루션 소개 기사를 통해 웹 서버를 구성했습니다. 데이터베이스 기사를 통해

  • grep를 사용하여 특정 텍스트나 문자열을 검색하는 등 명령 줄에 대한 익숙함을 키워 왔습니다.
  • netstat을 사용하여 수신 소켓(-l), 숫자 주소(-n), 각 소켓에 대한 프로그램의 PID와 이름(-p)을 표시하는 플래그를 사용하여 네트워크 구성을 확인했습니다.
  • systemctl을 사용하여 systemd 서비스를 제어했습니다.

또한 다양한 데이터베이스 관리 시스템과 함께 제공되는 명령 줄 도구를 실험하여 데이터베이스 설치와 상호 작용할 수 있었습니다. CLI 도구를 사용하면 데이터베이스 서버에서 명령을 실행하고 터미널 창에서 대화식으로 작업할 수 있습니다. 다음 표는 일반적인 DBMS와 해당 CLI 도구를 나열합니다:

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

다양한 데이터베이스 관리 시스템에는 명령 줄 클라이언트도 있습니다. 예를 들어 Redis의 경우 Redli가 있습니다.

데이터베이스 시스템과 작업할 때 명령 줄을 사용하면 일반적으로 해당 데이터베이스 관리 시스템의 사용자 계정과 관련된 데이터베이스별 서버 프롬프트가 열립니다. 예를 들어 MySQL 서버 프롬프트를 열고 MySQL 사용자로 로그인한다면 다음과 같은 데이터베이스 프롬프트를 확인할 수 있습니다:

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

SQL 제약 조건을 학습한 후에는 이러한 명령을 사용하여 MySQL 데이터베이스를 사용할 수 있습니다:해당 제약 조건 사용

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

SQL 사용 방법 시리즈를 통해 MySQL 데이터베이스 기술을 계속 발전시킬 수 있습니다.

Redis를 사용하여 다음 명령을 사용하여 Redis를 설치하고 보안을 설정하고 명령을 바꾸는 실험을했습니다:

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

그리고 MongoDB 셸에서는 이러한 쿼리 필터링 방법을 사용하여 이진 JSON (BSON으로 알려짐)을 사용하여 CRUD 작업을 수행했습니다:

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

데이터와 상호 작용하기 위해 CRUD 작업을 사용할 것으로 예상됩니다. 여러 데이터베이스 관리 시스템에서 데이터를 처리하기 위해 일반적으로 CRUD 작업을 사용할 것입니다.

자가 진단

What does CRUD stand for?

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

  • Create
  • Read
  • Update
  • Delete

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

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

설계된 CLI 도구를 사용하지 않을 경우 데이터베이스 작업에 대해 여러 가지 GUI 도구가 있습니다.

웹을 통한 MySQL 관리를 처리하려면 phpMyAdmin을 설치하고 보안 설정을 다양한 운영 체제에 적용하거나 MySQL 관리 데이터베이스에 원격으로 연결할 수 있습니다. 또한 MySQL Workbench를 사용하여 원격으로 MySQL 서버에 연결할 수도 있습니다.

phpMyAdmin과 유사하게, pgAdmin은 PostgreSQL을 관리하기 위한 웹 인터페이스입니다. 서버 모드에 pgAdmin을 설치하고 구성하거나 pgAgent를 사용하여 자동 백업 일정화할 수 있습니다.

MongoDB의 경우 MongoDB Compass를 사용하여 데이터베이스에 액세스할 수 있습니다.

명령 줄이나 그래픽 인터페이스 중 어떤 것을 선택하든 이제 데이터베이스 시스템을 관리할 도구가 있습니다.

다음은 무엇입니까?

데이터베이스와 인기있는 데이터베이스 관리 시스템에 대한 더 강한 이해를 바탕으로 데이터를 저장하고 관리하거나 데이터베이스 시스템을 사용하는 애플리케이션을 빌드할 수 있습니다.

특정 데이터베이스 관리 시스템과 작업하는 방법에 대해 자세히 알아보려면 SQL 사용 방법MongoDB로 데이터 관리하기 시리즈를 참고하십시오. MySQL에서 문제가 발생하면 MySQL에서 문제 해결하는 방법을 사용하여 디버깅할 수 있습니다. MongoDB 문제의 경우 MongoDB에서 CRUD 작업 수행하는 방법과 관련된 문제를 평가하십시오.

데이터베이스를 사용하여 앱을 빌드할 준비가되면 일반적인 응용 프로그램 스택 설정에 대한 다음 자습서를 따라보십시오:

앱을 완전히 관리되는 데이터베이스로 구축하는 것을 선호한다면, DigitalOcean이 제공하는 관리형 MongoDB 클러스터, MySQL 또는 PostgreSQL 호스팅, 그리고 관리형 Redis를 확인하세요. 또한 DigitalOcean Marketplace에서 1 클릭 설치를 위한 인기있는 데이터베이스 옵션을 선택할 수 있습니다.

새로 알게 된 데이터베이스 지식을 바탕으로 컨테이너와 보안과 관련된 클라우드 여정을 계속할 수도 있습니다. 아직 보지 않았다면 클라우드 서버 및 웹 서버에 대한 입문 기사도 확인해보세요.

Source:
https://www.digitalocean.com/community/tutorials/databases-checkpoint