문제

관계형 데이터베이스는 한 테이블의 필드가 다른 행의 행에 연결되는 데이터베이스입니다.

하지만 웹 개발자로서 저에게 무엇을 의미하는지 이해할 수 없습니다!

내가 아시다시피, 조인 및 중첩 된 선택이있는 쿼리는 성능을 줄일 수 있습니다 (특히 수십 개의 조인이있는 Drupal 스타일의 쿼리). 더욱이 DB에 대한 쿼리는 병목 현상이므로 선택 요청마다 캐시 해야하는 많은 사용자가 있습니다.

모든 선택 요청을 캐시하면 복잡하지 않고 간단한 요청을 캐시하는 것이 좋습니다. "ID = 123"에서 "선택 * 선택 * 및"선택 * 선택 *에서 id = 456 "또는"TBL1, TBL2에서 선택 *을 선택하십시오 ... " 객체의 모든 조합을 캐시해야합니다. 시원하지 않습니다.

자, 이제 우리는 "tbl1에서 id = 123"의 "select * id = 123"과 같은 매우 간단한 쿼리 만 사용합니다. ). 쿼리가없고 간단한 삽입, 삭제 및 업데이트는 우리가 필요한 것과 우리가 사용하는 모든 것입니다!

우리가 볼 수 있듯이, 모든 관계형 논리는 SQL이 아닌 응용 프로그램의 주요 언어에 있습니다. 그렇다면 왜 우리는이 모든 관계형이 필요합니까? 그들은 무엇을 의미합니까? "관계형"유형은 다른 유형이없는 것은 무엇입니까? 우리가 관계형 기능을 사용하지 않는 경우, 왜 모든 사람들이 성능에 관심이 있더라도 MySQL이나 관계형 데이터베이스를 사용하는 이유는 무엇입니까?

이 유형의 데이터베이스는 표준이되었습니다. 왜요? 나는 단서가 없다. ON GAE를 제외하고는 비 관계형 데이터베이스를 사용하는 사람에 대해 거의 들어 본 적이 없습니다.

내가 뭔가를 놓치고 있습니까?

도움이 되었습니까?

해결책

관계 적 의미에 대해 배우고 싶다면 책을 추천합니다. "SQL 및 관계형 이론"CJ 날짜에 의해.

이 맥락에서 관계 그렇지 않습니다 관계를 참조하십시오. 그것은 처지 기본적으로 수학적 이론에서 어떤 테이블이 호출되는지 관계형 모델.

관계형 데이터베이스가 유비쿼터스가 된 이유는 이들이 최소 중복성으로 데이터를 구성하는 가장 일반적인 솔루션이기 때문입니다.

비 관계형 솔루션을 사용해야하는 유효한 이유가 있습니다. 그들은 종종 특정 데이터 관리 작업을 매우 잘 해결하지만 다른 영역에서는 약합니다. SQL과 관계형 데이터베이스는 타협을 강타하여 약점 영역이 적어 더 큰 문제를 적절하게 해결합니다.

현재 관계형 모델을 기반으로하지 않는 현재 사용 가능한 다른 기술은 "에 나열되어 있습니다."차세대 데이터베이스."

다른 팁

나는 당신의 질문에 혼란스러워합니다. 다양한 테이블이 서로 어떻게 관련되어 있는지 추적한다고 제안하는 방법은 무엇입니까?

예를 들어, 자동차 목록과 사람 목록이 있으며 각 차를 소유 한 사람을 연결해야하므로 사람 데이터베이스에 CAR_ID 열이 있습니다. 이러한 관계를 추적하는 방법을 어떻게 제안 할 것인가

또한 '모든 쿼리는 병목 현상'이며 '간단한'쿼리 만 캐시하려고한다고 말합니다. 그러나 여러 개의 작은 쿼리를 만드는 것이 몇 가지 작은 쿼리를 만드는 것보다 리소스 집약적이 될 것이라고 90% 확신합니다. 또한 모든 조합을 캐시 할 필요는 없으며 실제로 존재하는 조합 만 캐시합니다. 내 예에서, 이와 같은 쿼리에 무슨 문제가 있습니까?

SELECT person.*, car.* from person left join on car where person.car_ID = car.ID

관계형 데이터베이스는 여러 가지 이유로 사실 데이터베이스가되었습니다.

  1. 1 차, 외국 및 고유 한 제약 조건을 설정하면 가장 낮은 수준의 특정 비즈니스 규칙을 시행하고 데이터 통합을 보장하며 데이터베이스 관계를 거의 모든 IT 전문가에게 쉽게 이해할 수 있도록합니다.

  2. 적절하게 설계된 관계형 데이터베이스는 실제로 많은 프로세스에 대한 무대 뒤에서 더 빠릅니다 (전부는 아닙니다).

  3. 관계형 데이터베이스의 쿼리는 학습하기가 매우 빠르며 쉽게 수행 할 수 있습니다.

  4. 관계형 데이터베이스는 데이터 복제를 제한하는 데 도움이되며 데이터 엔지니어링 관점에서 이는 훌륭한 것입니다.

그리고 다른 많은 사람들, 그러나 이것들은 몇 가지입니다.

관계를 사용하지 않으면 모든 것을 수많은 수의 열이있는 거대한 테이블에 저장해야합니다. 또는 Datacube를 사용할 수 있습니다 (생각하십니까?)

데이터를 정규화하고 redanancy를 제거 할 수 있습니다. 모든 데이터를 평평한 테이블 (Excel 스프레드 시트와 같은)에 저장하는 대신 별도의 테이블에 다른 데이터를 저장 한 다음 서로 관련시킵니다.

예를 들어, 사용자를 제품 테이블에 사용자 테이블 및 제품에 저장 한 다음 관계 테이블을 사용하여 어떤 사용자가 어떤 제품을 주문한지를 연관시킬 수 있습니다.

usera-> 곱

usera-> productb

userb-> upducta

userc-> productb

정규화 된 데이터를 사용하면 데이터가 변경되면 한 곳에서만 업데이트하면됩니다. 사용자가 이름을 변경하면 해당 사용자 레코드 만 변경합니다. 제품 가격을 인상 해야하는 경우 해당 제품 레코드 만 변경됩니다. 대체 할 중복 데이터를 찾는 플랫 테이블을 닦을 필요는 없습니다.

Valya, 응용 프로그램의 데이터가 추가, 업데이트 또는 삭제되지 않으면 캐시가 가장 빠른 검색 방법입니다. 이 데이터가 무엇인지 궁금합니다. 어쩌면 몇 가지 세부 사항이 도움이 될 것입니다. 나는 쓰기 스루 캐시로 전체 데이터베이스를 메모리에 저장 한 사람을 알고 있습니다. 그렇습니다. 그는 내가 이것을 철수 할 수있는 유일한 개발자입니다. 로켓 엔진을 재창조해야 할 수도 있고 그렇지 않을 수도 있습니다.

관계는 테이블의 수학적 단어입니다. 열은 서로 관련이 있습니다. 그렇지 않으면 같은 테이블에 있지 않았습니다.

예를 들어, 두 개의 숫자가 3의 배수가 다르면 서로 관련이 있습니다. (0,0), (1,4), (2, -1) 등 몇 가지를 적어 봅시다. 줄 모음이 나타납니다. 테이블입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top