Java 프로젝트 생성에 관한 시리즈 기사입니다. 그 목표는 핵심 기술을 분석하는 것이고, 그 결과는 텔레그램 봇을 작성하는 것입니다. 소개 부분은 여기에 있습니다 . 안녕하세요, 소프트웨어 엔지니어 여러분. 오늘 우리는 데이터베이스와 SQL 언어에 대해 이야기하고 있습니다. 이 글은 누구를 위한 글인가요? 네, 관심 있는 모든 분들. 어떤 사람들은 이 기사로 여행을 시작할 수도 있고, 다른 사람들은 흥미로운 사실에 대한 기억을 되살릴 수도 있을 것입니다. 이 부분은 순전히 이론적입니다. 데이터베이스와 SQL 구문이 무엇인지 설명하기 전에 이를 연구하는 이유를 이해하고 결정해야 합니다. 이 단계 에서는 SQL 데이터베이스에 대해서만 설명합니다 . 이 기사 시리즈에서는 NoSQL을 고려하지 않습니다.
데이터베이스: 그게 뭐야?
데이터베이스(이하 DB)란 질의어를 이용하여 얻을 수 있는 정형화된 데이터가 저장되어 있는 곳을 말한다. 데이터베이스는 대용량의 정보를 저장할 뿐만 아니라 처리하고 변경할 수도 있습니다. 참고 사항: 일부 기준에 따라 Excel에서 값 집합을 빠르게 변경해 보세요. 원칙적으로 복잡한 것은 없습니다. 디지털화되지 않은 현실 세계와는 다릅니다. 예를 들어 차선, 거리, 도시의 이름을 바꾸는 것입니다. 모든 것이 가상이고 데이터베이스에 입력되면 정규화되며 몇 가지 사소한 일이 될 것입니다. 그렇기 때문에 많은 저장 매체가 자동으로 변경될 수 없기 때문에 어려움을 겪고 있습니다. 이러한 맥락에서 데이터베이스용 SQL은 데이터베이스가 그에 따라 이해하고 응답하는 언어입니다. 예를 들어, 도시의 이름을 바꾸는 것은 어렵지 않을 것입니다. Dnepropetrovsk의 이름을 Dnipro로 바꾸는 것은 다음과 같습니다.UPDATE city SET name = “Днипро” WHERE id = 1231;
시스템에 대한 모든 후속 요청은 이미 필요한 이름을 생성합니다.
데이터베이스는 왜 필요한가요?
이미 말했듯이 데이터베이스를 사용하면 데이터를 저장할 수 있습니다. 그런데 이 데이터는 무엇일까요? 실제 사례를 사용하여 이해하기 위해 몇 가지 응용 프로그램에 대해 이야기할 수 있습니다. 예를 들어, 동일한 전보 봇에 대해. 우리는 얼마나 많은 사람들이 봇을 사용하고 있는지 알고 싶습니다. 이것을 어떻게 구현할 수 있습니까? 일반 Java 애플리케이션에서는 사용자의 닉네임이나 채팅 ID를 저장하는 Set이라는 고유한 요소를 많이 생성할 수 있습니다. 이것이 작동할까요? 할 것이다. 정확히 Java 애플리케이션이 중지될 때까지, 그리고 다시 시작되자마자 고유 요소 세트는 비어 있게 됩니다. 즉, 실행 중인 애플리케이션에 저장되어 있던 데이터가 그대로 사라졌습니다. 이에 대해 무엇을 할 수 있나요? Java 애플리케이션의 시스템 상태(데이터) 저장소를 다른 곳으로 이동할 수 있습니다. 이를 CSV 형식으로 컴퓨터의 일반 파일에 저장할 수 있습니다. 별도의 파일에서 한 줄로 수행할 수 있습니다. 이를 수행한 다음 Java 애플리케이션이 중지되기 전에 이 데이터를 덮어쓸 수 있습니다. 녹화 성공을 보장하는 것은 100%에 가깝지 않지만, 서버의 전원 코드만 뽑으면 녹화가 되지 않기 때문입니다. 이 접근 방식에는 심각한 단점이 있습니다. 즉, 파일 수준에서 정보를 얻고, 집계하고, 검색하는 기능이 없습니다. 예, 물론 파일을 읽고 그에 대한 개체를 생성할 수 있지만 매번 모든 데이터를 애플리케이션에 펌핑해야 합니다. 예를 들어 몇 기가바이트와 같이 많을 수 있습니다. 이는 데이터베이스에 데이터를 저장하면 방지할 수 있습니다. 어떻게? 테이블과 테이블 간의 관계를 통해. 이것이 모든 관계형 데이터베이스의 기반입니다.SQL: 데이터베이스가 이해하는 언어
데이터베이스 관리 시스템(이하 DBMS)이 있는데 그들이 이해하는 언어는 SQL이다. SQL은 데이터베이스를 조작하고 관리하기 위한 프로그래밍 언어입니다. 이것이 어떻게 작동하는지 이해하기 위해 그림을 살펴보겠습니다. 사용자가 DBMS에 SQL 쿼리를 보내고, DBMS는 수행해야 할 작업을 이해하고 수행하며, 요청이 데이터를 얻기 위한 것이라면 이를 반환합니다. 따라서 개발자로서 우리는 SQL 쿼리 언어를 마스터해야 합니다. “아, 또 다른 언어구나.”라고 생각할 수도 있습니다. 하나님의 도움으로 저는 여기서 자바를 거의 이해하지 못했는데 당신은 즉시 다른 언어를 제공하고 계십니다.” 이는 사실이 아닙니다. SQL은 일반적으로 데이터베이스 및 프로그래밍과 거리가 먼 회계사가 이 언어로 작성할 수 있도록 DBMS의 사양 언어로 발명되었습니다. 이것은 배우는 것이 그렇게 어렵지 않을 것임을 의미합니다. 가장 중요한 것은 연습-연습-연습입니다. 오늘은 이론이 있지만 다음 기사는 실습에 관한 것입니다. 관계형 데이터베이스는 2차원 배열 테이블과 이들 사이의 관계 집합이므로 작업은 이를 해결합니다. 예를 들어 보면 "국가"와 "도시"라는 두 테이블이 어떻게 연결되어 있는지 보여줄 수 있습니다. 이 단계에서는 테이블의 레코드가 Java 세계의 일부 개체에 대한 데이터라는 것을 이해하는 것이 중요합니다. 예를 들어, 이 두 테이블은 Java에서 다음과 같이 설명할 수 있습니다.public class Country {
private Long id;
private String name;
}
public class City {
private Long id;
private String name;
private Country country;
private Integer population;
}
글쎄요, 아름답지 않나요? 데이터베이스는 원하는 수의 테이블을 저장할 수 있습니다. 우리의 경우에는 두 가지가 있습니다.
테이블 구조
나는 모든 사람이 어떤 방식으로든 Excel 표를 접해 봤고 행 과 열 이라는 용어를 이해하고 있다고 생각합니다 . 데이터베이스의 맥락에서 우리는 레코드와 필드에 대해 더 많이 이야기합니다. 따라서 City 클래스의 각 객체는 데이터베이스 테이블의 레코드라는 것이 밝혀졌습니다.기본 키
데이터베이스의 필드가 동일한 값을 갖는 경우가 종종 있습니다. 예를 들어 이름, 성, 심지어는 부칭으로 두 명 이상의 사람을 찾을 수 있는 소셜 네트워크가 있습니다. 그리고 관계형 데이터베이스에는 레코드에 액세스하는 데 사용할 수 있는 고유한 필드가 필요합니다. 이를 첫 번째 키 또는 기본 키라고 합니다. 일반적으로 ID(id) 필드는 이러한 키로 사용됩니다. 이는 식별자의 약어입니다. 이것이 모든 테이블에 ID 필드를 추가해야 하는 이유입니다 .외부 키
이 예에서 이러한 필드는 Country의 키를 사용하는 City 테이블에 있습니다. 이는 다음과 같이 작동합니다. 각 도시는 해당 국가에 대한 고유한 정보 식별자를 알고 있으며, 이를 가져와 데이터베이스에 쿼리를 생성하면 해당 국가에 대한 포괄적인 정보를 받게 됩니다. 그림에서 볼 수 있듯이 두 테이블 사이에는 관계가 있습니다. 여기에는 외래 키의 원리가 나와 있습니다.SQL에는 어떤 섹션이 있나요?
그런데 인터뷰 중에 SQL에 어떤 작업이 있는지 묻는 경우가 많습니다.- DDL(Data Definition Language)은 테이블, 테이블의 구조 등을 변경/생성하는 연산자 그룹입니다. 즉, 테이블 생성, 삭제, 테이블의 필드 생성/삭제; 새로운 기본 키 생성 등
- DML(Data Manipulation Language)은 데이터 수정을 관리하는 연산자 그룹입니다. 데이터베이스의 데이터를 변경하는 모든 작업은 추가, 가져오기, 변경 및 삭제입니다.
- DCL(Data Control Language)은 작업을 수행할 수 있는 사용자 권한을 확인하는 수단입니다. DDL/DML 작업을 수행할 수 있도록 특정 사용자에게 액세스 및 권한을 제공하는 작업입니다.
SQL에는 어떤 데이터 유형이 있습니까?
테이블은 특정 유형의 데이터를 저장하고 처리할 수 있습니다. 여기에 있는 모든 내용은 Java에서 사용하는 것과 유사합니다. 주요 내용에 대해 이야기합시다. 그 중 세 개만 있으며 필요에 따라 다른 것을 추가할 것입니다. 그림에서 볼 수 있듯이 다음과 같습니다.- INT - 정수 값. 고유 식별자 및 단순 정수에 사용됩니다.
- VARCHAR 은 문자열 입니다 .
- DATE 는 LocalDate입니다.
GO TO FULL VERSION