Vad är inbyggda frågor?

Inbyggda frågor är frågor som uttrycks genom Structured Query Language (SQL) och är kortfattade såväl som typsäkra metoder för C++ och Java-frågeuttryck. Användningen av inbyggda frågor är fördelaktigt vid användning av specifika funktioner i databaser, inklusive frågetips och vissa databasspecifika funktioner. De är också användbara för att tillhandahålla rena migreringsvägar direkt från applikationer som använder SQL eller Java Database Connectivity (JDBC™). Inbyggda frågor används för att ge resultat som består av skalära värden, enheter eller båda. Dessa typer av frågor stöder användningen av inbyggd SQL på en måldatabas.

Dessa typer av frågor kan övervinna bristerna i ett strängbaserat applikationsprogrammeringsgränssnitt (API). Frågor av det här slaget används i en objektdatabas, där objektpersistens är en vanlig uppgift för programmerare och ett vanligt inslag i databasen. Icke-infödda frågor verkar dock främmande i program som är objektorienterade på grund av att deras uttryck är enkla strängar och objektgrafer som innehåller interspersed strängar.

Inbyggda frågor hjälper till att lindra problemen i databaser genom att uttrycka en fråga inom Java och C++. Frågor kan skrivas utan ett API eller ett anpassat frågespråk. Dessutom kan en integrerad utvecklingsmiljö (IDE) hjälpa till att minska stavfel. De inbyggda frågorna skulle då vara typsäkra till fullo och kunna nås av en IDE:s refactoring-funktioner. Slutligen kan frågorna köras, testas och prototyperas mot vanliga minnessamlingar utan baksidan av en databas.

Frågorna, och deras tillhörande SQL, är inte nödvändigtvis överförbara mellan andra databaser. När många entiteter returneras av en viss inbyggd fråga, bör samma entiteter specificeras, såväl som mappas, till kolumnresultat i SQL-satser i ett mappningsprogram för metadatadefinitioner. Som ett resultat kan dessa användas för att kartlägga JDBC-resultat med ihållande körtid till förväntade objekt. Användning av namnparameter definieras aldrig för dessa typer av frågor och portabla applikationer kan endast använda bindning av positionsparametrar för inbyggda SQL-frågor. Stöd för sammanfogningar är begränsat till relationer med enskilda värden.

För att använda inbyggda frågor måste en programmerare beskriva en SQL-resultatuppsättning. Att beskriva resultatuppsättningen hjälper ett program som Entitymanager att kartlägga kolumner på egenskaper för entiteter. Skalära resultat kan också definieras och blandas med andra entitetsresultat, vilket resulterar i att en aliaskolumn returneras. När resultatuppsättningar väl har beskrivits är det möjligt att köra inbyggda frågor.